Forum und email
Jiné nekompatibility

Jiné nekompatibility

  • Modul PHP 3.0 pro Apache již nepodporuje verze Apache starší než 1.2. Je třeba Apache 1.2 nebo pozdější.

  • Funkce echo() již nepodporuje formátovaný řetězec. Použijte namísto toho printf().

  • V PHP/FI 2.0 způsobovaly vedlejší efekty implementace to, že $foo[0] mělo stejný účinek jako $foo. Toto již v PHP 3.0 neplatí

  • Čtení z polí pomocí $array[] již není podporováno.

    To znamená, že nemůžete traverzovat pole v cyklu, který provádí $data = $array[]. Použijte funkce current() a next().

    Současně $array1[] = $array2 nepřipojuje hodnoty pole $array2 k poli $array1, nýbrž připojuje pole $array2 jako poslední položku pole $array1. Viz též: podpora vícerozměrných polí.

  • "+" již není přetěžován jako spojovací operátor pro řetězce, namísto toho konvertuje řetězce na čísla a provede jejich (numerický) součet. Použijte tedy operátor "." instead.

Příklad E-11. Přechod z 2.0: spojení řetězců

echo "1" + "1";

V PHP 2.0 by se vypsalo 11, v PHP 3.0 se vypíše 2. Když místo toho použijete:

echo "1"."1";
$a = 1;
$b = 1;
echo $a + $b;

vypíše se 2 v PHP 2.0 i 3.0.

$a = 1;
$b = 1;
echo $a.$b;
Toto v PHP 3.0 vypíše 11.