|
Posted by Jochem Maas on 09/19/05 17:32
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().
>
>
>
>
>
[Back to original message]
|