(PHP 5 >= 5.1.0, PHP 7, PHP 8)
property_exists — オブジェクトもしくはクラスにプロパティが存在するかどうかを調べる
$object_or_class
, string $property
): bool
この関数は、与えられたプロパティ property
が
指定されたクラスに存在するかどうかを確認します。
注意:
isset() とは対照的に、 プロパティの値が
null
の場合でも property_exists() はtrue
を返します。
object_or_class
確認するクラス名、もしくはクラスのオブジェクトを指定します。
property
プロパティ名を指定します。
プロパティが存在している場合は true
、存在していない場合に false
、
エラー時には null
を返します。
例1 property_exists() の例
<?php
class myClass {
public $mine;
private $xpto;
static protected $test;
static function test() {
var_dump(property_exists('myClass', 'xpto')); //true
}
}
var_dump(property_exists('myClass', 'mine')); //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto')); //true
var_dump(property_exists('myClass', 'bar')); //false
var_dump(property_exists('myClass', 'test')); //true
myClass::test();
?>
注意:
この関数を使うと、未知のクラスに対しては登録済みの autoloader を使用します。
注意:
property_exists() 関数は、マジックメソッド
__get
を使ってアクセスするプロパティを検出することはできません。