I've never come across this before, but how would you test whether three variables are the same? The following, obviously doesn't work but I can't think of an elegant (and correct) way to write the following:
if ($select_above_average === $select_average === $select_below_average) { }
To have a comparison of three (or more) variables done correctly, one should use the following expression: if (a == b && b == c) .... In this case, a == b will return true, b == c will return true and the result of the logical operation AND will also be true.
== Operator: This operator is used to check the given values are equal or not. If yes, it returns true, otherwise it returns false. Syntax: operand1 == operand2. === Operator: This operator is used to check the given values and its data type are equal or not. If yes, then it returns true, otherwise it returns false.
The comparison operator called as the Identical operator is the triple equal sign “===”. This operator allows for a much stricter comparison between the given variables or values. This operator returns true if both variable contains same information and same data types otherwise return false.
if ((a == b) && (b == c)) {
... they're all equal ...
}
by the transitive relation
$values = array($select_above_average, $select_average, $select_below_average);
if(count(array_unique($values)) === 1) {
// do stuff if all elements are the same
}
Would be another way to do it.
if ($select_above_average === $select_average
&& $select_average === $select_below_average) { }
you already have your answer by Adam but a good way to remember how to do this correctly is to remember for a single validation you should be wrapping in ()
braces, if your only doing one single check then you already have the braces provided by the if ( ) statement.
Example:
if ( a === b )
and if your doing multiple then
if( ( a === b ) && ( c === d ) )
Sop if you remember that every set of braces is a validation check, you can have login like this:
if( (( a === b ) || ( c === d )) && ( e === f ) )
if statements and many other logical operations work on hierarchy so that the amount of individual checks within a check has an effect on he parent check.
taking the third example above if a === b
or c === d
fails then e === f
will never be checked as the ab,cd is wrapped in braces so that is returned and checked.
Hope this helps you a little more.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With