PHP syntax for dereferencing function result
I have a string, which looks like 1234#5678. Now I am calling this:
$last = explode("#", "1234#5678")
Its not working, there is some syntax error…but where? What I expect is 5678 in
$last. Is this not working in PHP?
Array dereferencing is not possible in the current PHP versions (unfortunately). But you can use
list [docs] to directly assign the array elements to variables:
list($first, $last) = explode("#", "1234#5678");
Since PHP 5.4 (released 01-Mar-2012) it supports array dereferencing.
Most likely PHP is getting confused by the syntax. Just assign the result of
explode to an array variable and then use index on it:
$arr = explode("#", "1234#5678"); $last = $arr;
Here’s how to get it down to one line:
$last = current(array_slice(explode("#", "1234#5678"), indx,1));
indx is the index you want in the array, in your example it was 1.
You can’t do this:
explode is a function, not an array. It returns an array, sure, but in PHP you can’t treat the function as an array until it is set into an array.
This is how to do it:
$last = explode('#', '1234#5678'); $last = $last;
PHP can be a little dim. You probably need to do this on two lines:
$a = explode("#", "1234#5678"); $last = $a;