プロパティ調査
概要
property_exists
get_class_vars
get_object_vars
サンプル(property_exists)プロパティの有無をチェック
<?php
// 親クラスなし
class TestClass01{
public $aaa;
private $bbb;
protected $ccc;
}
?>
<?php
// TestClass01のオブジェクト生成
$obj1 = new TestClass01();
// プロパティチェック
$res1 = property_exists($obj1, "aaa");
$res2 = property_exists($obj1, "bbb");
$res3 = property_exists($obj1, "ccc");
$res4 = property_exists($obj1, "ddd");
// プロパティ有無確認
var_dump($res1);
var_dump($res2);
var_dump($res3);
var_dump($res4); // 存在しないのでfalse
?>
サンプル(get_class_vars)public定義されているプロパティを取得
<?php
// 親クラスなし
class TestClass01{
public $aaa;
public $aaa02;
private $bbb;
private $bbb02;
protected $ccc;
protected $ccc02;
function __construct(){
$this->zzz = "aaa"; // コンストラクタ時に定義するため、検知できない
}
}
?>
<?php
// TestClass01のオブジェクト生成
$obj1 = new TestClass01();
// TestClass01クラスのデフォルトプロパティを取得
$list = get_class_vars("TestClass01");
// プロパティ有無確認
var_dump($list);
?>
サンプル(get_object_vars)値が参照できるプロパティを取得する
<?php
// 親クラスなし
class TestClass01{
public $aaa;
public $aaa02;
private $bbb;
private $bbb02;
protected $ccc;
protected $ccc02;
function __construct(){
$this->zzz = "aaa"; // コンストラクタ時に定義するため、検知できない
$this->bbb = "111";
$this->ccc = "222";
}
}
?>
<?php
// TestClass01のオブジェクト生成
$obj1 = new TestClass01();
// インスタンスを生成したオブジェクトのプロパティを取得
$list = get_object_vars($obj1);
// プロパティ有無確認
var_dump($list);
?>
最終更新:2012年08月17日 22:28