Żonglowanie typami i (ścisłe) większe / mniejsze niż porównania w PHP
PHP słynie z żonglowania typami. Muszę przyznać, że to mnie intryguje i trudno mi znaleźć podstawowe porównania logiczne / podstawowe.
Na przykład: Jeśli$a > $b
jest prawdą, a$b > $c
jest prawdą, musi to oznaczać, że$a > $c
jestzawsz też prawda?
Zgodnie z podstawową logiką powiedziałbym, żeta Jednak jestem tak zaskoczony, że tak naprawdę nie ufam PHP. Może ktoś może podać przykład, w którym tak nie jest?
Zastanawiam się również nad ścisłymi operatorami mniejszymi niż i ścisłymi (ponieważ ich znaczenie jest opisywane jako ściśle, które znałem tylko w przeszłości z porównań równości), czy ma to znaczenie, jeśli zamienia się lewy i prawy operand o ściśle nierównych wartościach:
# Precondition:
if ($a === $b) {
throw new Exception(
'Both are strictly equal - can not compare strictly for greater or smaller'
);
}
($a > $b) !== ($b > $a)
Dla większości kombinacji kombinacji typów te większe / mniejsze operatory porównania nie są udokumentowane, więc przeczytanie instrukcji nie było w tym przypadku pomocne.