Tipos de Expressões
PHP/FI 2.0 usava o lado esquerdo das expressões para determinar qual tipo o resultado seria. PHP 3.0 leva os dois lados em consideração quando determina os tipos dos resultados, e isso pode causar que scripts do 2.0 se comportem inexperadamente no 3.0.
Considere esse exemplo:
$a[0]=5;
$a[1]=7;
$key = key($a);
while ("" != $key) {
echo "$keyn";
next($a);
}
Consertar isso é simples. Substitua a instrução while com:
while ((string)$key != "") {