Forum und email

其它不兼容

  • PHP 3.0 的 Apache 模块不再支持 Apache 1.2 以前的版本。PHP 3.0 需要 Apache 1.2 或更高版本。
  • echo() 不再支持格式化字符串。如果想格式化字符串,使用 printf() 函数。
  • 在 PHP/FI 2.0 中,$foo[0]$foo 有着同样的效果。而 3.0 则不是这样的。
  • 不再支持使用 $array[] 读取数组。 也就是说,不可以通过作 $data = $array[] 的循环来遍历一个数组。使用 current()next() 函数来代替。 同样的,$array1[] = $array2 并没有把 $array2 的值赋给 $array1,而是把 $array2 这个数组赋给 $array1 的最后一项。这种情况也发生在多维数组上。
  • "+" 不再重载为字符串串连的运算符,它的作用是把字符串转换为数字并将它们相加。如果想串连字符串,使用 "." 代替。

Example#1 从 2.0 移植:串连字符串

echo "1" + "1";

在 PHP 2.0 中该程序会显示 11,而在 PHP 3.0 中会显示 2。如果要在 PHP 3.0 中达到同样的效果,应该使用:

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

上面的程序在 PHP 2.0 和 3.0 中都会显示 2。

$a = 1;
$b = 1;
echo $a.$b;
面的程序在 PHP 3.0 中会显示 11。