Gebruiken jullie wel eens een verkort if-statement (en zo ja, wanneer)?

<?php
$foo = true ? 'foo' : 'nofoo';
?>
In plaats van:

<?php
if (true) {
$foo = 'foo';
} else {
$foo = 'nofoo';
}
?>
Een segmentation fault?
Ik bedoel dat je geen else aangeeft, dus hij kan alleen maar de if uitvoeren, maar als die dat niet kan gaat die dus verder op de volgende regel?
Ja inderdaad, ik weet niet of je mijn reactie op de vorige pagina nog zag...

Ozzie PHP op 19/03/2014 13:51:59

Waarom zou ie foo niet kunnen returnen? Je controleert eerst met isset() of $foo bestaat. Als foo bestaat, dan kun je 'm ook returnen. Als $foo niet bestaat, dan gaat ie verder op de volgende regel. Snap je?


Ja zag ik, oke duidelijk dan, wel vaag dat daar geen melding van komt.
Nee, dat is niet vaag.

Je zegt gewoon heel simpel:

ALS (iets is waar) doe dit
if (isset($foo)) return $foo;

Als het niet waar is, gebeurt er dus gewoon niks.
Oke, ik dacht dat if altijd een else nodig heeft en als je die niet aangeeft dat er een foutmelding komt, maar blijkbaar niet.
Ozzie, de lengte van een script heeft niks uit te maken met de snelheid van het uitvoeren. Wat er in het script staat heeft te maken met de snelheid.
>> Ozzie, de lengte van een script heeft niks uit te maken met de snelheid van het uitvoeren. Wat er in het script staat heeft te maken met de snelheid.

Daaar ben ik nu inderdaad ook achter gekomen. Toch ben ik wel benieuwd waarom een normale if/else net iets sneller is dan de verkorte versie. Wordt het anders verwerkt? Ja... dat moet dan haast wel.
Thanks Ward. Het heeft dus te maken dat er een copy wordt gemaakt van een waarde in plaats van een reference. Hmmm, vaag...

Reageren