Essentially, I’d love to be able to define a variable as one thing unless that thing doesn’t exist. I swear that somewhere I saw a shorthand conditional that looked something like this:
$var=$_GET["var"] || "default";
But I can’t find any documentation to do this right, and honestly it might have been JS or ASP or something where I saw it.
I understand that all that should be happening in the above code is just to check if either statement returns true. But I thought I saw someone do something that essentially defined a default if the first failed. Is this something anyone knows about and can help me? Am I crazy? It just seems redundant to say:
$var=($_GET["var"]) ? $_GET["var"] : "default";
or especially redundant to say:
if ($_GET["var"]) { $var=$_GET["var"]; } else { $var="default"; }
Thoughts?
Matthew has already mentioned the only way to do it in PHP 5.3. Note that you can also chain them:
This is not the same as:
The reason why is that PHP is like most traditional languages in this aspect. The logical OR always returns
trueorfalse. However, in JavaScript, the final expression is used. (In a series of ORs, it will be the first non-false one.)