PHP-Logo

PHP | TRUE || FALSE

if (-1 == true) {
  echo "aha ...";
}
// output: aha ...

$tmpArray = array(0, 'foo2');
if (in_array("foo", $tmpArray)) {
  echo "aha v2 ...";
}
// output: aha v2 ...

$tmpArray = array(0, 'foo2');
if (in_array("foo", $tmpArray, true)) {
  echo "aha v3 ...";
}
// output:

Das Beispiel mit in Array hab ich auf Twitter gesehen und hat mich im ersten Momentan doch ein wenig verwirrt.

Wenn man den dritten Parameter ($strict = null) von der Funktion “in_array” nicht auf “true” setzt, werden die Werte mit dem “==” Operator verglichen und daher ist ein nicht definierter String == null == 0 -> daher wieder “true” ;)

Also, sollte man in den meisten Fällen $strict auf “true” setzten und somit einen Typenvergleich mit dem “===” Operator durchführen lassen.

<- Übersicht -> 

== true false 1 0 -1 “1″ “0″ “-1″ null array() array(1) array(“php”) “php” “” NAN
true true false true false true true false true false false true true true false true
false false true false true false false true false true true false false false true false
1 true false true false false true false false false false false false false false false
0 false true false true false false true false true false false false true true false
-1 true false false false true false false true false false false false false false false
“1″ true false true false false true false false false false false false false false false
“0″ false true false true false false true false false false false false false false false
“-1″ true false false false true false false true false false false false false false false
null false true false true false false false false true true false false false true false
array() false true false false false false false false true true false false false false false
array(1) true false false false false false false false false false true false false false false
array(“php”) true false false false false false false false false false false true false false false
“php” true false false true false false false false false false false false true false false
“” false true false true false false false false true false false false false true false
NAN true false false false false false false false false false false false false false false

source: http://habnab.it/php-table.html

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
  • http://suckup.de/ Lars Moelleken

    PS: nicht nur “in_array” hat diese Feature, sondern auch “array_search” …

    bool in_array ( mixed $needle , array $haystack [, bool $strict = false ] )
    mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )