webForumDet fria alternativet

Fel efter byte till php 4.2.2

3 svar · 167 visningar · startad av Asterix

AsterixMedlem sedan dec. 1999464 inlägg
#1

Här under ser ni ett av mina script. Nyligen bytte mitt webhotel till php 4.2.2 och då la det av att funka. Felet som jag hittade var att if ($key !== NULL) { inte längre funkade. Jag bytte ut det mot if ($key != '') { och detta verkar funka. Är det någon som vet om det första alternativet om är borttaget, eller???

$nr = 0;
if (count ($m_order_id)) {
  echo join (",", $m_order_id);
  $nr += count ($m_order_id);

  $key = array_search ($last, $m_order_id);
  if ($key !== NULL) {
    echo "FEL";
    $m_order_id = array_slice ($m_order_id, 0, $key + 1);
  }
  $m_order_id = join (",", $m_order_id);
  echo "$m_order_id<br>";
  mysql_query ("UPDATE m_order SET s_date = '". time() ."' WHERE id IN($m_order_id)") or die (mysql_error());
}
if (count ($p_order_id) and $key === NULL) {
  echo join (",", $p_order_id);
  $nr += count ($p_order_id);

  $key = array_search ($last, $p_order_id);
  if ($key !== NULL) {
    $p_order_id = array_slice ($p_order_id, 0, $key + 1);
  }

  $p_order_id = join (",", $p_order_id);
  echo "$p_order_id<br>";
  mysql_query ("UPDATE p_order SET gratis_klar = '". time() ."' WHERE id IN($p_order_id)") or die (mysql_error());
}
SPiNMedlem sedan mars 20005 832 inlägg
#2

Nej, det är nog inte borttaget. === eller !== använder man om man vill kolla om en variabel är identiskt ( OBS, inte jämföra värde ) med en annan.

Följande borde inte fungera:

$i = 0;
$n = 0;
if( $i === $n ) {
     echo "Nu är det något skumt med PHP!";
}

Medan följande borde fungera:

$i = 0;
$n = &$i;
if( $i === $n ) {
     echo "Nu stämmer det nog!";
}
AsterixMedlem sedan dec. 1999464 inlägg
#3

Men det står om man går in på array_search så står det att man ska använda sig av === eller har jag fel?

AsterixMedlem sedan dec. 1999464 inlägg
#4

Hittade längre ner i kommentarerna på att de har ändrat. Man ska nu använda sig av: $key !== null && $key !== false för att det inte ska strula på varken äldre eller nyare versioner av php.

Genererad på 364 ms · cache AV · v20260730165559-full.f96bc7eb