Przejdź do treści głównej
INF.03Pytanie #1558 z 1558php-skladnia-i-struktury

Przeanalizuj porównania obiektów za pomocą operatorów równości (==) oraz identyczności (===). Jaki rezultat zwróci funkcja var_dump()?

php
<?php
class Produkt {
    public $id = 1;
}
$p1 = new Produkt();
$p2 = new Produkt();
$p3 = $p1;
var_dump($p1 == $p2, $p1 === $p2, $p1 === $p3);
?>
Opcje odpowiedzi:
A
bool(true) bool(true) bool(true)
B
bool(true) bool(false) bool(true)
Prawidłowa
C
bool(false) bool(false) bool(true)
D
bool(true) bool(false) bool(false)
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: B (bool(true) bool(false) bool(true))

W języku PHP:

  1. $p1 == $p2 — operator luźnej równości == dla obiektów sprawdza, czy są tej samej klasy i mają identyczne wartości atrybutów -> zwraca true,
  2. $p1 === $p2 — operator tożsamości === sprawdza, czy obie zmienne wskazują na tę samą instancję (ten sam obiekt w pamięci) -> dwie różne instancje dają false,
  3. $p1 === $p3 — zmienna $p3 = $p1 wskazuje dokładnie na tę samą instancję -> zwraca true. Wynik to: bool(true) bool(false) bool(true).

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: $p1 === $p2 jest fałszem, ponieważ są to dwa odrębne obiekty powołane osobnymi new.
  • C: $p1 == $p2 zwraca true, ponieważ oba obiekty mają identyczną strukturę i wartości pól.
  • D: $p1 === $p3 zwraca true, ponieważ $p3 jest referencją do instancji $p1.

Chcesz poćwiczyć całą kwalifikację INF.03?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF03
Reklama

Podobne pytania z działu „Php skladnia i struktury”

Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 165 pytań z tego działu.