其它不相容

  • 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 的最後一項。這種情況也發生在多維陣列上。

  • "+" 不再重載為字串串連的運算符,它的作用是把字串轉換為數字並將它們相加。若果想串連字串,使用 "." 代替。

例子 D-11. 從 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。