Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Appendices : Migrating from PHP/FI 2 to PHP 3 : Other incompatibilities

Other incompatibilities

  • The PHP 3.0 Apache module no longer supports Apache versions prior to 1.2. Apache 1.2 or later is required.
  • echo() no longer supports a format string. Use the printf() function instead.
  • In PHP/FI 2.0, an implementation side-effect caused $foo[0] to have the same effect as $foo. This is not true for PHP 3.0.
  • Reading arrays with $array[] is no longer supported

    That is, you cannot traverse an array by having a loop that does $data = $array[]. Use current() and next() instead.

    Also, $array1[] = $array2 does not append the values of $array2 to $array1, but appends $array2 as the last entry of $array1. See also multidimensional array support.

  • "+" is no longer overloaded as a concatenation operator for strings, instead it converts it's arguments to numbers and performs numeric addition. Use "." instead.

Example F.11. Migration from 2.0: concatenation for strings

echo "1" + "1"; ?>

In PHP 2.0 this would echo 11, in PHP 3.0 it would echo 2. Instead use:

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

This would echo 2 in both PHP 2.0 and 3.0.

$a = 1;
$b = 1;
echo
$a.$b; ?>

This will echo 11 in PHP 3.0.


Change Language


Follow Navioo On Twitter
About the incompatibilities in 3.0
old_function
Start/end tags
if..endif syntax
while syntax
Expression types
Error messages have changed
Short-circuited boolean evaluation
Function TRUE/FALSE return values
Other incompatibilities
eXTReMe Tracker