property_exists
funkcja
Sprawdza, czy dana właściwość istnieje w klasie lub obiekcie — niezależnie od widoczności: public, protected lub private.
property_exists(object|string $object_or_class, string $property): bool
property_exists zwraca true, jeśli właściwość o podanej nazwie jest zadeklarowana w klasie — bez względu na to, czy jest public, protected czy private. Pierwszym argumentem może być obiekt lub nazwa klasy jako string. W odróżnieniu od isset() funkcja nie sprawdza wartości: property_exists zwróci true nawet jeśli właściwość istnieje, ale ma wartość null. To czyni ją bardziej niezawodną przy introspeksji struktury klasy.
<?php
declare(strict_types=1);
class Ksiazka
{
public string $tytul = 'Potop';
protected int $rok = 1886;
private string $isbn = '978-83-000-0002-8';
}
$k = new Ksiazka();
var_dump(property_exists($k, 'tytul')); // bool(true) — public
var_dump(property_exists($k, 'rok')); // bool(true) — protected
var_dump(property_exists($k, 'isbn')); // bool(true) — private
var_dump(property_exists($k, 'autor')); // bool(false) — nie istnieje
// Działa też z nazwą klasy jako stringiem:
var_dump(property_exists('Ksiazka', 'tytul')); // bool(true)