プライベートプロパティを含むクラスでは、property_exists()関数はtrue(php> 5.3)を返します。関数にはis_callableのメソッドがあります。メソッドは存在するだけでなく、(method_exists()の代わりに)利用可能でもあります。このプロパティにアクセスできるかどうかを確認する、この関数と同等の機能がありますか?プロパティはPHPでアクセス可能な場合どのように検証しますか?
<?php
class testClass {
private $locked;
public $unlocked;
private function hiddenFunction(){
return "hidden";
}
public function visibleFunction(){
return "visible";
}
}
$object = new testClass();
var_dump(property_exists($object, "unlocked")); // returns true
var_dump(property_exists($object, "locked")); // returns true > php 5.3
var_dump(method_exists($object, "hiddenFunction")); // returns true but can't be called
var_dump(method_exists($object, "visibleFunction")); // returns true
var_dump(is_callable(array($object, "hiddenFunction"))); // returns false
var_dump(is_callable(array($object, "visibleFunction"))); // returns true
?>
ありがとう。関数のチェックは簡単なPHP関数で行うことができますが、プロパティではリフレクションクラスを使用する必要があります。 – Joe