PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのproperty_exists()関数の使い方を徹底解説!プロパティの存在確認方法

PHPのproperty_exists()関数は、指定したオブジェクトやクラスに特定のプロパティが存在するかどうかを確認するための組み込み関数です。オブジェクト指向プログラミングにおいて、動的にプロパティの有無を判定したい場面で非常に役立ちます。

基本構文

property_exists(object, property)

パラメータ

  • object / class − 存在を確認したい対象となるオブジェクト、またはクラス名(文字列)

  • property − 存在するかどうかを調べたいプロパティ名

戻り値

property_exists()関数の戻り値は以下の通りです。

  • プロパティが存在する場合 → TRUE

  • プロパティが存在しない場合 → FALSE

  • エラーが発生した場合 → NULL

使用例

以下のコードでは、クラス名とオブジェクトインスタンスの両方を使ってプロパティの存在を確認しています。

<?php
   class Demo {
      public $one;
      private $two;
      static protected $VAL;
      static function VAL() {
         var_dump(property_exists('myClass', 'two'));
      }
   }
   var_dump(property_exists('Demo', 'one'));
   var_dump(property_exists(new Demo, 'one'));
?>

実行結果

上記コードの出力は以下のようになります。

bool(true)
bool(true)

ポイント解説

この例からわかるように、property_exists()関数はクラス名を文字列として渡す方法と、オブジェクトインスタンスを渡す方法のどちらでも使用できます。また、private や protected などのアクセス修飾子が付いたプロパティに対しても、外部からその存在を確認できる点が特徴です。

なお、isset()との違いにも注意が必要です。isset()はプロパティの値が NULL の場合に FALSE を返しますが、property_exists()は値が NULL であってもプロパティ自体が定義されていれば TRUE を返します。プロパティの「定義の有無」を厳密に判定したい場合は、property_exists()を使用するのが適切です。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

  2. PHPのproperty_exists()関数の使い方を徹底解説!プロパティの存在確認方法

    PHPのproperty_exists()関数は、指定したオブジェクトやクラスに特定のプロパティが存在するかどうかを確認するための組み込み関数です。オブジェクト指向プログラミングにおいて、動的にプロパティの有無を判定したい場面で非常に役立ちます。基本構文property_exists(object, property)パラメータobject / class − 存在を確認したい対象となるオブジェクト、またはクラス名(文字列)property − 存在するかどうかを調べたいプロパティ名戻り値property_exists()関数の戻り値は以下の通りです。プロパティが存在する場合 → TRUEプロ