Section 13.8. Changes in Functions


13.8. Changes in Functions

Some minor changes in functions break backward compatibility. There are countless other additions to functions and additional functions, but these do not affect compatibility between PHP 4 and PHP 5.

13.8.1. array_merge()

This function no longer accepts a non-array parameter as one of its arguments. In PHP 4, it was perfectly valid to use scalar types, like an integer or string (but not a variable representing "null"), as parameter. These types are happily included as an element in the resulting array. PHP 5 no longer supports this. If you use a scalar type, PHP 5 issues an error of type E_WARNING and return an empty array. You can see this behavior by comparing the output of this script from PHP 4 and PHP 5:

 <?php     $array1 = array (1, 2, 3, 4);     $array2 = null;     $array3 = 'non-array';     $array4 = array ('a', 'b', 'c');     print_r(array_merge($array1, $array2, $array3, $array4)); ?> 

The output with PHP 4 is
 Array (     [0] => 1     [1] => 2     [2] => 3     [3] => 4     [4] => non-array     [5] => a     [6] => b     [7] => c ) 

The output with PHP 5 is
 Warning: array_merge(): Argument #2 is not an array in /13-making  the-move/array_merge.php on line 7 Warning: array_merge(): Argument #3 is not an array in /13-making  the-move/array_merge.php on line 7 

13.8.2. strrpos() and strripos()

strrpos() and strripos() search for the last occurrence of a string inside a string in a respectively case-sensitive and case-insensitive way. In PHP 5, the full $needle is searched for in the string, searching from the end rather than the first character of this $needle string, as in PHP 4. The following example shows this:

 <?php     $str = "This is a short string.";     var_dump(strrpos($str, "small")); ?> 

In PHP 4, this returns position 16 (the index of the "s" of "string"):

 int(16) 

In PHP 5 this returns

 bool(false) 

It is possible that more functions broke compatibility between PHP 4 and PHP 5, but they are either not known, a bug fix, or are too unimportant to be noticed.



    PHP 5 Power Programming
    PHP 5 Power Programming
    ISBN: 013147149X
    EAN: 2147483647
    Year: 2003
    Pages: 240

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net