I was studying some code I found on the web recently, and came across this php syntax:
<?php $framecharset && $frame['charset'] = $framecharset; ?>
Can someone explain what is going on in this line of code?
What variable(s) are being assigned what value(s), and what is the purpose of the && operator, in that location of the statement?
Thanks!
Pat
Ah, I just wrote a blog post about this idiom in javascript:
http://www.mcphersonindustries.com/
Basically it’s testing to see that
$framecharsetexists, and then tries to assign it to$frame['charset']if it is non-null.The way it works is that interpreters are lazy. Both sides of an
&&statement need to be true to continue. When it encounters afalsevalue followed by&&, it stops. It doesn’t continue evaluating (so in this case the assignment won’t occur if$framecharsetisfalseornull).Some people will even put the more “expensive” half of a boolean expression after the
&&, so that if the first condition isn’ttrue, then the expensive bit won’t ever be processed. It’s arguable how much this actually might save, but it uses the same principle.