diff options
Diffstat (limited to 'ext/standard/tests/array/array_shift_variation5.phpt')
-rw-r--r-- | ext/standard/tests/array/array_shift_variation5.phpt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_shift_variation5.phpt b/ext/standard/tests/array/array_shift_variation5.phpt new file mode 100644 index 000000000..2ac15da6b --- /dev/null +++ b/ext/standard/tests/array/array_shift_variation5.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test array_shift() function : usage variations - call recursively +--FILE-- +<?php +/* Prototype : mixed array_shift(array &$stack) + * Description: Pops an element off the beginning of the array + * Source code: ext/standard/array.c + */ + +/* + * Use the result of one call to array_shift + * as the the $stack argument of another call to array_shift() + * When done in one statement causes strict error messages. + */ + +echo "*** Testing array_shift() : usage variations ***\n"; + +$stack = array ( array ( array ('zero', 'one', 'two'), 'un', 'deux'), 'eins', 'zwei'); + +// not following strict standards +echo "\n-- Incorrect Method: --\n"; +var_dump(array_shift(array_shift(array_shift($stack)))); + +$stack = array (array( array('zero', 'one', 'two'), 'un', 'deux'), 'eins', 'zwei'); +// correct way of doing above: +echo "\n-- Correct Method: --\n"; +$result1 = array_shift($stack); +$result2 = array_shift($result1); +var_dump(array_shift($result2)); + +echo "Done"; +?> +--EXPECTF-- +*** Testing array_shift() : usage variations *** + +-- Incorrect Method: -- + +Strict Standards: Only variables should be passed by reference in %s on line %d + +Strict Standards: Only variables should be passed by reference in %s on line %d +string(4) "zero" + +-- Correct Method: -- +string(4) "zero" +Done
\ No newline at end of file |