Es gibt keine streng identischen Vergleichsoperatoren ( >==
oder <==
) in PHP (mindestens in PHP 5.6.14) , aber es gibt einige Möglichkeiten , eine strenge Typprüfung zu erzwingen, bevor Größer / Niedriger überprüft wird:
- Überprüfen Sie beide Variablentypen mit
if (gettype($a) === gettype($b))
- Erzwingen Sie Ihren benötigten Typcast, z.
if ((string)$a === (string)$b)
- Erzwingen Sie Ihren benötigten Typ-Jonglage, z.
if (($a . '') === ($b . ''))
Beachten Sie Folgendes:
- Gleitkommapräzision ist begrenzt
INF
und NAN
sind vom Typ float
unterieee754
- Einige Unendlichkeit entspricht einer anderen Unendlichkeit (seit PHP 5.4)
- Wissenschaftliche Notation
e
ist immer vom Typ float
und niemalsinteger
selbst wenn die Anzahl klein ist
- Ganzzahlen gehen vorbei
PHP_INT_MAX
automatisch in konvertiertfloat
- Schwebt über die Systemgrenzen hinweg
INF
Wert
- Undefinierte Variablen sind von Typ und Wert
NULL
- Ganzzahlen mit vorangestelltem
0
werden (gemäß Konvention) von Oktal in Dezimal konvertiert.
- Das Konvertieren von Zeichenfolgen, die eine Ganzzahl mit einer führenden
0
in eine Ganzzahl enthalten, entfernt die führende0
Liste einiger exotischer Vergleiche:
Sehr eigenartig:
$ a VS. $ b $ a> $ b $ a <$ b $ a <= $ b $ a> = $ b $ a == $ b $ a === $ b
float (NAN) float (-INF) false false false false false false
float (NAN) float (0) false false false false false false
float (NAN) float (1) falsch falsch falsch falsch falsch falsch
float (NAN) float (INF) falsch falsch falsch falsch falsch falsch
float (NAN) float (NAN) falsch falsch falsch falsch falsch falsch
float (NAN) int (-1) false false false false false false
float (NAN) int (0) false false false false false false
float (NAN) int (1) falsch falsch falsch falsch falsch falsch
Gleich, aber nicht identisch:
$ a VS. $ b $ a> $ b $ a <$ b $ a <= $ b $ a> = $ b $ a == $ b $ a === $ b
NULL (NULL) array () false false true true true false
NULL (NULL) bool (false) false false true true true false
NULL (NULL) float (0) false false true true true false
NULL (NULL) int (0) falsch falsch wahr wahr wahr falsch
NULL (NULL) str ('') falsch falsch wahr wahr wahr falsch
array () bool (false) false false true true true true false
bool (false) float (0) false false true true true false
bool (false) int (0) false false true true true false
str ('') bool (false) false false true true true false
bool (false) str ('0') false false true true true false
float (-INF) bool (true) false false true true true false
bool (true) float (1) false false true true true false
float (INF) bool (wahr) falsch falsch wahr wahr wahr falsch
float (NAN) bool (wahr) falsch falsch wahr wahr wahr falsch
bool (true) int (-1) false false true true true false
bool (true) int (1) false false true true true false
bool (true) str ("\ 0") false false true true true false
bool (true) str ('+') false false true true true false
bool (true) str ('-') false false true true true false
bool (true) str ('01 ') false false true true true false
bool (true) str ('1') false false true true true false
bool (true) str ('false') false false true true true false
str ('text') bool (wahr) falsch falsch wahr wahr wahr falsch
str ('true') bool (true) false false true true true false
int (0) float (0) false false true true true true false
str ("\ 0") float (0) false false true true true false
str ('') float (0) false false true true true false
str ('+') float (0) false false true true true false
str ('-') float (0) false false true true true false
str ('0') float (0) false false true true true false
str ('false') float (0) false false true true true false
str ('text') float (0) false false true true true false
str ('true') float (0) false false true true true false
int (1) float (1) false false true true true false
float (1) str ('01 ') false false true true true false
float (1) str ('1') false false true true true false
str ("\ 0") int (0) false false true true true false
str ('') int (0) false false true true true false
str ('+') int (0) falsch falsch wahr wahr wahr falsch
str ('-') int (0) falsch falsch wahr wahr wahr falsch
int (0) str ('0') falsch falsch wahr wahr wahr falsch
str ('false') int (0) false false true true true false
str ('text') int (0) false false true true true false
str ('true') int (0) false false true true true false
int (1) str ('01 ') falsch falsch wahr wahr wahr falsch
int (1) str ('1') falsch falsch wahr wahr wahr falsch
str ('1') str ('01 ') falsch falsch wahr wahr wahr falsch
Niedriger und größer gleichzeitig?
$ a VS. $ b $ a> $ b $ a <$ b $ a <= $ b $ a> = $ b $ a == $ b $ a === $ b
float (NAN) str ("\ 0") wahr wahr wahr wahr falsch falsch
float (NAN) str ('') wahr wahr wahr wahr falsch falsch
float (NAN) str ('+') wahr wahr wahr wahr falsch falsch
float (NAN) str ('-') wahr wahr wahr wahr falsch falsch
float (NAN) str ('0') wahr wahr wahr wahr falsch falsch
float (NAN) str ('01 ') wahr wahr wahr wahr falsch falsch
float (NAN) str ('1') wahr wahr wahr wahr falsch falsch
float (NAN) str ('false') wahr wahr wahr wahr falsch falsch
float (NAN) str ('text') wahr wahr wahr wahr falsch falsch
float (NAN) str ('true') true true true true false false
Gleich UND identisch:
$ a VS. $ b $ a> $ b $ a <$ b $ a <= $ b $ a> = $ b $ a == $ b $ a === $ b
NULL (NULL) NULL (NULL) falsch falsch wahr wahr wahr wahr
float (-INF) float (-INF) false false true true true true
float (INF) float (INF) falsch falsch wahr wahr wahr wahr
Niedriger oder größer:
$ a VS. $ b $ a> $ b $ a <$ b $ a <= $ b $ a> = $ b $ a == $ b $ a === $ b
NULL (NULL) bool (wahr) falsch wahr wahr falsch falsch falsch
float (-INF) NULL (NULL) wahr falsch falsch wahr falsch falsch
NULL (NULL) float (1) false true true false false false
float (INF) NULL (NULL) wahr falsch falsch wahr falsch falsch
float (NAN) NULL (NULL) wahr falsch falsch wahr falsch falsch
NULL (NULL) int (-1) falsch wahr wahr falsch falsch falsch
NULL (NULL) int (1) falsch wahr wahr falsch falsch falsch
NULL (NULL) str ("\ 0") falsch wahr wahr falsch falsch falsch
NULL (NULL) str ('+') falsch wahr wahr falsch falsch falsch
NULL (NULL) str ('-') falsch wahr wahr falsch falsch falsch
NULL (NULL) str ('0') falsch wahr wahr falsch falsch falsch
NULL (NULL) str ('01 ') falsch wahr wahr falsch falsch falsch
NULL (NULL) str ('1') falsch wahr wahr falsch falsch falsch
NULL (NULL) str ('false') false true true false false false
NULL (NULL) str ('text') falsch wahr wahr falsch falsch falsch
NULL (NULL) str ('wahr') falsch wahr wahr falsch falsch falsch
array () bool (true) false true true false false false false
float (-INF) array () false true true false false false
array () float (0) true false false true false false false
array () float (1) true false false true false false
float (INF) array () false true true false false false false
float (NAN) array () false true true false false false false
array () int (-1) true false false true false false false
array () int (0) true false false true false false false
array () int (1) wahr falsch falsch wahr falsch falsch falsch
array () str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('') array () false true true false false false false
array () str ('+') wahr falsch falsch wahr falsch falsch
array () str ('-') true false false true false false
array () str ('0') wahr falsch falsch wahr falsch falsch
array () str ('01 ') true false false true false false
array () str ('1') wahr falsch falsch wahr falsch falsch
array () str ('false') true false false true false false
array () str ('text') wahr falsch falsch wahr falsch falsch
array () str ('true') true false false true false false
bool (wahr) bool (falsch) wahr falsch falsch wahr falsch falsch
float (-INF) bool (false) true false false true false false
float (1) bool (false) true false false true false false
float (INF) bool (false) wahr falsch falsch wahr falsch falsch
float (NAN) bool (false) wahr falsch falsch wahr falsch falsch
bool (false) int (-1) false true true false false false
int (1) bool (false) true false false true false false
bool (false) str ("\ 0") false true true false false false
bool (false) str ('+') false true true false false false
bool (false) str ('-') false true true false false false
bool (false) str ('01 ') false true true false false false
str ('1') bool (false) wahr falsch falsch wahr falsch falsch
bool (false) str ('false') false true true false false false
str ('text') bool (false) wahr falsch falsch wahr falsch falsch
str ('true') bool (false) true false false true false false
bool (true) float (0) true false false true false false
bool (true) int (0) true false false true false false
str ('') bool (wahr) falsch wahr wahr falsch falsch falsch
bool (true) str ('0') true false false true false false
float (-INF) float (0) false true true false false false
float (-INF) float (1) false true true false false false
float (INF) float (-INF) wahr falsch falsch wahr falsch falsch
float (-INF) int (-1) false true true false false false
float (-INF) int (0) false true true false false false
float (-INF) int (1) false true true false false false
float (-INF) str ("\ 0") false true true false false false
float (-INF) str ('') false true true false false false
float (-INF) str ('+') false true true false false false
float (-INF) str ('-') false true true false false false
float (-INF) str ('0') false true true false false false
float (-INF) str ('01 ') false true true false false false
float (-INF) str ('1') false true true false false false
float (-INF) str ('false') false true true false false false
float (-INF) str ('text') false true true false false false
float (-INF) str ('true') false true true false false false
float (1) float (0) wahr falsch falsch wahr falsch falsch
float (INF) float (0) wahr falsch falsch wahr falsch falsch
float (0) int (-1) true false false true false false
int (1) float (0) wahr falsch falsch wahr falsch falsch falsch
float (0) str ('01 ') false true true false false false
str ('1') float (0) wahr falsch falsch wahr falsch falsch
float (INF) float (1) wahr falsch falsch wahr falsch falsch
float (1) int (-1) wahr falsch falsch wahr falsch falsch falsch
float (1) int (0) wahr falsch falsch wahr falsch falsch falsch
float (1) str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('') float (1) false true true false false false
float (1) str ('+') wahr falsch falsch wahr falsch falsch
float (1) str ('-') wahr falsch falsch wahr falsch falsch
float (1) str ('0') wahr falsch falsch wahr falsch falsch
float (1) str ('false') wahr falsch falsch wahr falsch falsch
str ('text') float (1) false true true false false false
str ('true') float (1) false true true false false false
float (INF) int (-1) wahr falsch falsch wahr falsch falsch
float (INF) int (0) wahr falsch falsch wahr falsch falsch
float (INF) int (1) wahr falsch falsch wahr falsch falsch
float (INF) str ("\ 0") wahr falsch falsch wahr falsch falsch
float (INF) str ('') wahr falsch falsch wahr falsch falsch
float (INF) str ('+') wahr falsch falsch wahr falsch falsch
float (INF) str ('-') wahr falsch falsch wahr falsch falsch
float (INF) str ('0') wahr falsch falsch wahr falsch falsch
float (INF) str ('01 ') wahr falsch falsch wahr falsch falsch
float (INF) str ('1') wahr falsch falsch wahr falsch falsch
float (INF) str ('false') wahr falsch falsch wahr falsch falsch
float (INF) str ('text') wahr falsch falsch wahr falsch falsch
float (INF) str ('true') wahr falsch falsch wahr falsch falsch
int (0) int (-1) wahr falsch falsch wahr falsch falsch
int (1) int (-1) wahr falsch falsch wahr falsch falsch falsch
str ("\ 0") int (-1) wahr falsch falsch wahr falsch falsch
str ('') int (-1) wahr falsch falsch wahr falsch falsch
str ('+') int (-1) wahr falsch falsch wahr falsch falsch
str ('-') int (-1) wahr falsch falsch wahr falsch falsch
str ('0') int (-1) wahr falsch falsch wahr falsch falsch
int (-1) str ('01 ') falsch wahr wahr falsch falsch falsch
str ('1') int (-1) wahr falsch falsch wahr falsch falsch
str ('false') int (-1) true false false true false false
str ('text') int (-1) wahr falsch falsch wahr falsch falsch
str ('true') int (-1) true false false true false false
int (1) int (0) wahr falsch falsch wahr falsch falsch
int (0) str ('01 ') false true true false false false
str ('1') int (0) wahr falsch falsch wahr falsch falsch
int (1) str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('') int (1) falsch wahr wahr falsch falsch falsch
int (1) str ('+') wahr falsch falsch wahr falsch falsch
int (1) str ('-') wahr falsch falsch wahr falsch falsch
int (1) str ('0') wahr falsch falsch falsch falsch falsch
int (1) str ('false') wahr falsch falsch wahr falsch falsch
str ('text') int (1) falsch wahr wahr falsch falsch falsch
str ('true') int (1) false true true false false false
str ('') str ("\ 0") falsch wahr wahr falsch falsch falsch
str ('+') str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('-') str ("\ 0") wahr falsch falsch wahr falsch falsch
str ("\ 0") str ('0') falsch wahr wahr falsch falsch falsch
str ("\ 0") str ('01 ') falsch wahr wahr falsch falsch falsch
str ('1') str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('false') str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('text') str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('true') str ("\ 0") wahr falsch falsch wahr falsch falsch
str ('') str ('+') falsch wahr wahr falsch falsch falsch
str ('') str ('-') falsch wahr wahr falsch falsch falsch
str ('') str ('0') falsch wahr wahr falsch falsch falsch
str ('') str ('01 ') falsch wahr wahr falsch falsch falsch
str ('') str ('1') falsch wahr wahr falsch falsch falsch
str ('') str ('false') false true true false false false
str ('') str ('text') falsch wahr wahr falsch falsch falsch
str ('') str ('wahr') falsch wahr wahr falsch falsch falsch
str ('-') str ('+') wahr falsch falsch wahr falsch falsch
str ('+') str ('0') falsch wahr wahr falsch falsch falsch
str ('+') str ('01 ') falsch wahr wahr falsch falsch falsch
str ('1') str ('+') wahr falsch falsch wahr falsch falsch
str ('false') str ('+') wahr falsch falsch wahr falsch falsch
str ('text') str ('+') wahr falsch falsch wahr falsch falsch
str ('wahr') str ('+') wahr falsch falsch wahr falsch falsch
str ('-') str ('0') falsch wahr wahr falsch falsch falsch
str ('-') str ('01 ') falsch wahr wahr falsch falsch falsch
str ('1') str ('-') wahr falsch falsch wahr falsch falsch
str ('false') str ('-') wahr falsch falsch wahr falsch falsch
str ('text') str ('-') wahr falsch falsch wahr falsch falsch
str ('wahr') str ('-') wahr falsch falsch wahr falsch falsch
str ('0') str ('01 ') falsch wahr wahr falsch falsch falsch
str ('1') str ('0') wahr falsch falsch wahr falsch falsch
str ('false') str ('0') wahr falsch falsch wahr falsch falsch
str ('text') str ('0') wahr falsch falsch wahr falsch falsch
str ('wahr') str ('0') wahr falsch falsch wahr falsch falsch
str ('false') str ('01 ') wahr falsch falsch wahr falsch falsch
str ('text') str ('01 ') wahr falsch falsch wahr falsch falsch
str ('true') str ('01 ') wahr falsch falsch wahr falsch falsch
str ('1') str ('false') false true true false false false
str ('text') str ('1') wahr falsch falsch wahr falsch falsch
str ('wahr') str ('1') wahr falsch falsch wahr falsch falsch
str ('text') str ('false') wahr falsch falsch wahr falsch falsch
str ('wahr') str ('falsch') wahr falsch falsch wahr falsch falsch
str ('wahr') str ('text') wahr falsch falsch wahr falsch falsch
$a > $b > $c
Rätsel, wenn: $a
nicht größer als ist $c
.
A <C: float (NAN)> str ('a')> str ('')
A <C: float (NAN)> str ('a')> str ('1')
A <C: float (NAN)> str ('a')> str ('A')
A <C: float (NAN)> str ('a')> str ('0')
A <C: float (NAN)> str ('1')> str ('')
A <C: float (NAN)> str ('1')> str ('0')
A <C: float (NAN)> str ('A')> str ('')
A <C: float (NAN)> str ('A')> str ('1')
A <C: float (NAN)> str ('A')> str ('0')
A <C: float (NAN)> str ('0')> str ('')
A <C: str ('')> float (NAN)> str ('a')
A <C: str ('')> float (NAN)> str ('1')
A <C: str ('')> float (NAN)> str ('A')
A <C: str ('')> float (NAN)> str ('0')
A <C: str ('a')> str ('')> float (NAN)
A <C: str ('a')> str ('1')> float (NAN)
A <C: str ('a')> str ('A')> float (NAN)
A <C: str ('a')> str ('0')> float (NAN)
A <C: str ('0')> str ('')> float (NAN)
A == C: bool (true)> str ('')> float (NAN)
A == C: bool (true)> str ('')> float (-INF)
A == C: bool (wahr)> str ('')> int (-1)
A == C: bool (true)> str ('')> float (-1)
A == C: bool (true)> array ()> float (NAN)
A == C: bool (true)> array ()> float (INF)
A == C: bool (true)> array ()> float (-INF)
A == C: bool (true)> array ()> str ('a')
A == C: bool (true)> array ()> int (1)
A == C: bool (true)> array ()> float (1)
A == C: bool (true)> array ()> str ('1')
A == C: bool (true)> array ()> str ('A')
A == C: bool (true)> array ()> int (-1)
A == C: bool (true)> array ()> float (-1)
A == C: bool (wahr)> int (0)> float (-INF)
A == C: bool (wahr)> int (0)> int (-1)
A == C: bool (wahr)> int (0)> float (-1)
A == C: bool (wahr)> str ('0')> float (NAN)
A == C: bool (true)> str ('0')> float (-INF)
A == C: bool (wahr)> str ('0')> int (-1)
A == C: bool (wahr)> str ('0')> float (-1)
A == C: bool (true)> float (0)> float (-INF)
A == C: bool (wahr)> float (0)> int (-1)
A == C: bool (wahr)> float (0)> float (-1)
A == C: int (1)> str ('a')> str ('1')
A == C: int (1)> str ('A')> str ('1')
A == C: float (1)> str ('a')> str ('1')
A == C: float (1)> str ('A')> str ('1')
A == C: str ('a')> str ('1')> int (0)
A == C: str ('a')> str ('1')> float (0)
A == C: str ('')> float (-INF)> NULL (NULL)
A == C: str ('')> float (-INF)> bool (false)
A == C: str ('')> int (-1)> NULL (NULL)
A == C: str ('')> int (-1)> bool (false)
A == C: str ('')> float (-1)> NULL (NULL)
A == C: str ('')> float (-1)> bool (false)
A == C: array ()> float (NAN)> NULL (NULL)
A == C: array ()> float (NAN)> bool (false)
A == C: array ()> float (INF)> NULL (NULL)
A == C: array ()> float (INF)> bool (false)
A == C: array ()> float (-INF)> NULL (NULL)
A == C: array ()> float (-INF)> bool (false)
A == C: array ()> str ('a')> NULL (NULL)
A == C: array ()> str ('a')> bool (false)
A == C: array ()> int (1)> NULL (NULL)
A == C: array ()> int (1)> bool (false)
A == C: array ()> float (1)> NULL (NULL)
A == C: array ()> float (1)> bool (false)
A == C: array ()> str ('1')> NULL (NULL)
A == C: array ()> str ('1')> bool (false)
A == C: array ()> str ('A')> NULL (NULL)
A == C: array ()> str ('A')> bool (false)
A == C: array ()> str ('0')> NULL (NULL)
A == C: array ()> int (-1)> NULL (NULL)
A == C: array ()> int (-1)> bool (false)
A == C: array ()> float (-1)> NULL (NULL)
A == C: array ()> float (-1)> bool (false)
A == C: str ('')> float (NAN)> bool (false)
A == C: str ('')> float (NAN)> NULL (NULL)
A == C: str ('A')> str ('1')> int (0)
A == C: str ('A')> str ('1')> float (0)
A == C: int (0)> float (-INF)> NULL (NULL)
A == C: int (0)> float (-INF)> bool (false)
A == C: int (0)> int (-1)> NULL (NULL)
A == C: int (0)> int (-1)> bool (false)
A == C: int (0)> float (-1)> NULL (NULL)
A == C: int (0)> float (-1)> bool (false)
A == C: str ('0')> float (NAN)> bool (false)
A == C: str ('0')> float (-INF)> bool (false)
A == C: str ('0')> int (-1)> bool (false)
A == C: str ('0')> float (-1)> bool (false)
A == C: float (0)> float (-INF)> NULL (NULL)
A == C: float (0)> float (-INF)> bool (false)
A == C: float (0)> int (-1)> NULL (NULL)
A == C: float (0)> int (-1)> bool (false)
A == C: float (0)> float (-1)> NULL (NULL)
A == C: float (0)> float (-1)> bool (false)
A === C: str ('0')> float (NAN)> str ('0')
A === C: str ('')> float (NAN)> str ('')
A === C: str ('a')> float (NAN)> str ('a')
A === C: str ('1')> float (NAN)> str ('1')
A === C: str ('A')> float (NAN)> str ('A')
Fun String Vergleich: 'Queen' >
'King' >
'Jack' >
'Ace'
Schauen Sie sich auch die PHP-Typvergleichstabellen an, die Paare abdecken:
isset()
und is_null()
if()
und empty()
- boolean
==
vs.===
Überprüfen Sie die Unterschiede zwischen PHP-Versionen live unter. http://3v4l.org/MAfDu .
($a > $b) !== ($b < $a)
?