Welcome to WebmasterWorld Guest from

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

When can I combine or separate functions?

4:02 pm on Sep 8, 2013 (gmt 0)

Full Member

5+ Year Member Top Contributors Of The Month

joined:Sept 30, 2009
votes: 0

I don't know if it's terrible practice or not, but I often combine multiple functions on the same line instead of assigning a variable I'm only going to use once. Normally its not a problem, but I'm getting an "Only variables should be passed by reference" error for:

$name = array_shift(array_values(array_diff($candidates, $conflicts)));

I don't get an error if I break it into two lines:

$vettedCandidates = array_values(array_diff($candidates, $conflicts));
$name = array_shift($vettedCandidates);

I just don't understand what the difference is and why the first one gives me an error. To me, they would seem the same.
12:11 pm on Sept 10, 2013 (gmt 0)

Senior Member

WebmasterWorld Senior Member 5+ Year Member

joined:Dec 13, 2009
votes: 0

array_shift modifies the variable you pass into it.

If you look on the docs [uk3.php.net], it's shown as
array_shift ( array &$array )
- the leading ampersand there means it's a reference rather than a typical variable. A function call cannot be a reference.