Warum verhält sich der PHP-Nullkoaleszenzoperator (??) mit == und === irrational?Php

PHP-Programmierer chatten hier
Guest
 Warum verhält sich der PHP-Nullkoaleszenzoperator (??) mit == und === irrational?

Post by Guest »

Code: Select all

var_dump(3 ?? null);
var_dump(3 ?? null === null);
var_dump(3 === null);
var_dump(3 ?? 1 > 2);
var_dump(null ?? 1 > 2);
Was sind Ihrer Meinung nach die Ergebnisse?

Die Frage lautet also eigentlich:
Warum ist der Wert der PHP-Engine === höher als ??? In welcher Welt würde irgendjemand es so vergleichen wollen, wenn ($count ?? (null === null)) wäre, wenn das so kontraintuitiv zum gewünschten if (($count) ist ?? null) === null)?
Gegeben $count = 3; if ($count ?? 1 > 2), als rationaler Mensch würde ich erwarten, dass dies zu if ((3 ?? 1) > 2) -> if (3 > 2) ausgewertet wird und true zurückgeben. Stattdessen wird if (3 ?? (1 > 2) -> if (3) ausgewertet, was zufällig der Wahrheit entspricht. Aber ich glaube nicht, dass irgendjemand diese Auswertung vernünftigerweise wollen würde...
Es scheint mir ein Fehler im Interpreter zu sein. Gibt es einen guten Grund für diesen Zustand?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post