PHP/FI 2.0 根据表达式左边判断表达式的类型,而 PHP 3.0 则根据表达式两边进行判断。这便可能导致 2.0 下运行正常的脚本在 3.0 下导致异常。
考虑以下例子:
$a[0]=5;$a[1]=7;$key = key($a);while ("" != $key) { echo "$keyn"; next($a);}
很容易修正它。把 while 声明替换为:
while ((string)$key != "") {