Jordan Miller wrote:
On Sep 19, 2005, at 8:31 AM, Jochem Maas wrote:
e.g:
$var = array_pop( explode('-', '1-2-3-4-5') );
.. is bad code (read the manual page for array_pop very carefully)
and would work
in older versions but the engine has been tightened up to disallow
such fauxpas.
Jochem,
Whoa... what do you mean by this, exactly? I am running PHP 5.0.4 and
what I meant an what I wrote apparently don't match up very well :-)
I meant to give a valid example of when you can't pass the return value from
a function to another function due to the fact that a reference is expected
and in some situation the var you are passing is a reference to 'nothing' -
which works in older version of php but is also the cause of a couple of
weird/nasty & inexplicable potential seg faults ... it was fixed, Derick
opened his mouth, alot of people got angry - personally I don't give a shit
because I only use 5.0.x (I'll be waiting until the shitstorm has died down
before trying out 5.0.5 or 5.1 :-)
maybe this helps to explain (alot) better what I was talking about ...
http://phplens.com/phpeverywhere/?q=node/view/214
anyway thanks for the catch Jordan.
$var is correctly set with the code you give above. I could not find
anything like you describe in the array_pop manual (see below). Please
elaborate on why this is "bad" code.
Jordan
array_pop
(PHP 4, PHP 5)
array_pop -- Pop the element off the end of array
Description
mixed array_pop ( array &array )
array_pop() pops and returns the last value of the array, shortening
the array by one element. If array is empty (or is not an array), NULL
will be returned.
Note: This function will reset() the array pointer after use.
Example 1. array_pop() example
<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>
After this, $stack will have only 3 elements:
Array
(
[0] => orange
[1] => banana
[2] => apple
)
and raspberry will be assigned to $fruit.
See also array_push(), array_shift(), and array_unshift().
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php