Altre incompatibilità

  • Il modulo Apache per PHP 3.0 non supporta più le versioni Apache inferiori a 1.2. Apache 1.2 e superiore è necessario.

  • echo() non supporta più una stringa formattata. Usa per questo la funzione printf().

  • In PHP/FI 2.0, un implementazione collateranea causava $foo[0] di avere lo stesso effetto di $foo. Questo non è più cosi in PHP 3.0.

  • Leggere gli array con $array[] non è piu supportato

    Cioè, non si puo aprire un array con un ciclo che fà $data = $array[]. Usa current() e next() per avere questo effetto.

    Inoltre, $array1[] = $array2 non aggiunge i valori di $array2 a $array1, ma invece aggiunge $array2 come làultima entrata di $array1. Vedi anche il supporto di array multidimensionali.

  • "+" non è più usato come un operatore di concatenazione per le stringhe, invece converte i suoi argumenti in numeri e realizza l'aggiunta numerica. Usa "." al posto suo.

Esempio D-11. Migrazione da 2.0: concatenazione delle stringhe

echo "1" + "1";

In PHP 2.0 avrebbe emettesso 11, in PHP 3.0 invece emetterebbe 2. Perciò si usa:
echo "1"."1";
$a = 1;
$b = 1;
echo $a + $b;

Emette 2 in entrambi PHP 2.0 e 3.0.
$a = 1;
$b = 1;
echo $a.$b;
Questo emettera 11 in PHP 3.0.