Instanceof, argumenty funkcji

Operator instanceof sprawdza czy dany obiekt jest obiektem danej klasy lub klasy która dziedziczy po danej klasie. W wypadku powodzenia zwraca wartość logiczną true.

Za pomocą operatora instanceof sprawdzić także możemy czy obiekt jest klasy imlemenującej dany interfejs.


<?php
interface Interfejs{}
class Bazowa{}

class Dziedzic extends Bazowa implements Interfejs{}

$obiekt = new Dziedzic;
if( $obiekt instanceof Interfejs ){
    echo 'obiekt implementuje Interfejs<br />';
}

if( $obiekt instanceof Bazowa ){
    echo 'jest to obiekt klasy Bazowa 
    lub jest on obiektem klasy która
    po niej dziedziczy<br /> ';
}

if( $obiekt instanceof Dziedzic ){
    echo 'jest to obiekt klasy Dziedzic 
    lub jest on obiektem klasy która
    po niej dziedziczy ';
}

?>

Na ekranie ujrzymy :

obiekt implementuje Interfejs
jest to obiekt klasy Bazowa lub jest obiektem klasy która po niej dziedziczy
jest to obiekt klasy Dziedzic lub jest obiektem klasy która po niej dziedziczy

Argumenty funkcji

PHP pozwala na podawanie oczekiwanycg typów obiektów przy deklaracji argumentów funkcji.

Podczas wywołania takiej funkji PHP automatycznie sprawdzi poprawność przesłanego obiektu za pomocą operatora instanceof.

Jeśli operator zwróci wartość logiczną false, metoda nie zostanie wykonana a PHP zwróci błąd.