property_exists

(PHP 5 >= 5.1.0, PHP 7)

property_exists オブジェクトもしくはクラスにプロパティが存在するかどうかを調べる

説明

property_exists ( mixed $class , string $property ) : bool

この関数は、与えられたプロパティ property が 指定されたクラスに存在するかどうかを確認します。

注意:

isset() とは対照的に、 プロパティの値が NULL の場合でも property_exists()TRUE を返します。

パラメータ

class

確認するクラス名、もしくはクラスのオブジェクトを指定します。

property

プロパティ名を指定します。

返り値

プロパティが存在している場合は TRUE、存在していない場合に FALSE、 エラー時には NULL を返します。

注意

注意:

この関数を使うと、未知のクラスに対しては登録済みの autoloader を使用します。

注意:

property_exists() 関数は、マジックメソッド __get を使ってアクセスするプロパティを検出することはできません。

変更履歴

バージョン 説明
5.3.0 この関数は、アクセス権に依存せずにプロパティの存在確認を行うようになりました。

例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'));   //PHP 5.3.0 以降では true
var_dump(property_exists('myClass''bar'));    //false
var_dump(property_exists('myClass''test'));   //PHP 5.3.0 以降では true
myClass::test();

?>

参考

  • method_exists() - クラスメソッドが存在するかどうかを確認する