Tipi di espressione
PHP/FI 2.0 usava il lato sinistro delle espressioni per determinare di che tipo dovesse essere il risultato. PHP 3.0 considera entrambi i lati quando determina il tipo del risultato, e questo può causare un comportamento inaspettato degli script 2.0 sulla versione 3.0.
Si consideri questo esempio:
$a[0]=5;
$a[1]=7;
$key = key($a);
while ("" != $key) {
echo "$keyn";
next($a);
}
La soluzione è semplice. Sostituire l'espressione while con:
while ((string)$key != "") {