PHP and passing non-variables by reference

In PHP 5.0.5, they've now made it a requirement that things that are passed by reference must now explicitly be a variable. You would think this kind of behavior is obvious, but apparently it's been allowed for all versions of PHP previous. Appararently without even warnings. You'll get an error:

Fatal error: Only variables can be passed by reference ...

So you may think, where is this useful? Consider something short and concise like:

$only_element_we_care_about = array_pop(explode($seperator, $string));

You cannot do this now. The return value of a function is not a "variable" and cannot be passed by reference; a temporary variable needs to be used instead:

$tempory_variable = explode($seperator, $string); $only_element_we_care_about = array_pop($temporary_variable);

Yes, there are other ways to do the above, but that isn't the point. The fix is not difficult, but it is a total complete pain to go back to legacy code and fix things like this.

Remind me to find another web programming language.

Trackback URL for this post:

http://samat.org/trackback/55

Comments

web programming languages

Python - need I say more?

check out http://cherrypy as a framework, or http://turbogears.org, which builts on CherryPy. S

I like Python a lot, but the

I like Python a lot, but the web development frameworks are still way too fragmented.

I've seen and worked with TurboGears--and I like what I've seen so far. But at the moment, my main issue is that it's not done yet. It's not stabilized--there have been many API changes so far, which is my original complaint with PHP...

So, time will tell.