Źródło: Arkusze CKE
Co zostanie wyświetlone po wykonaniu poniższego kodu w PHP?
$x = 5;
$y = '5';
var_dump($x == $y);
var_dump($x === $y);
Warianty odpowiedzi
-
A
bool(false) bool(false)
-
B
bool(false) bool(true)
-
C
bool(true) bool(true)
-
D
bool(true) bool(false)
Wyjaśnienie
W tym pytaniu sprawdzana jest znajomość dwóch sposobów porównywania wartości w PHP, które działają analogicznie jak w JavaScript.
Pierwsze wywołanie używa operatora luźnego porównania (==). PHP widzi liczbę 5 i ciąg znaków '5'. Automatycznie konwertuje napis na liczbę i stwierdza, że wartości są równe, więc wypisuje bool(true).
Drugie wywołanie używa operatora ścisłego porównania (===). Tutaj PHP bada też typy danych: zmienna $x to typ całkowity (int), a $y to napis (string). Ponieważ typy się różnią, porównanie daje bool(false).
Funkcja var_dump pokaże więc po kolei: bool(true) oraz bool(false).