Operatoren
Zie ook
http://www.php.net/manual/language.operators.php http://www.php.net/manual/language.operators.comparison.php
Een veelgemaakte fout is de = en de == door elkaar te halen.
Dit kun je voorkomen door binnen een if() extra haakjes om een toewijzing te zetten. Zo zie je direct of je een toewijzing deed, of dat het een vergelijking was en wel ==/=== moest hebben.
if (($a = 3)) { }
Een andere mogelijkheid is de yoda-style. Dit geeft je een parse-error als je het fout doet, omdat je op deze manier geen waarde toe kan wijzen, maar alleen een vergelijking mag maken.
if ( 3 = $a ) {} // error if ( 'string' = $a ) {} // error if ( true = $a ) {} // error
Dit gaat volgens sommigen wel ten koste van de leesbaarheid, maar als je vaker dit probleem hebt zou je het eens kunnen proberen.
De = operator
Dit symbool is 'toekenning'. Na het commando $a=3 heeft $a de waarde 3. Daarom is deze code
<?php if ($a=3) { // Do stuff } ?>
identiek aan
<?php $a=3; if ($a) { // Do stuff } ?>
De == operator
Dit symbool is 'vergelijken'. $a==3 geeft true als $a de waarde 3 heeft. Als de typen van links en rechts niet gelijk zijn, worden ze als getal vergeleken. Dan is dus '' == NULL en '' == 0.
De === operator
Dit is 'strikt vergelijken'. Wanneer de types nu niet hetzelfde zijn, is het antwoord sowieso false. Zijn de types wel gelijk, dan worden ze weer vergeleken.





