检测对象属性在 PHP 中是否私有
2022-08-30 16:32:48
我正在尝试创建一个PHP(5)对象,该对象可以循环访问其属性,仅基于其公共属性而不是其私有属性构建SQL查询。
由于此父对象方法将由子对象使用,因此我不能简单地选择按名称跳过私有属性(我不知道它们在子对象中是什么)。
有没有一种简单的方法可以从对象内部检测其哪些属性是私有的?
以下是到目前为止我所得到的简化示例,但此输出包括$bar的值:
class testClass {
public $foo = 'foo';
public $fee = 'fee';
public $fum = 'fum';
private $bar = 'bar';
function makeString()
{
$string = "";
foreach($this as $field => $val) {
$string.= " property '".$field."' = '".$val."' <br/>";
}
return $string;
}
}
$test = new testClass();
echo $test->makeString();
给出输出:
property 'foo' = 'foo'
property 'fee' = 'fee'
property 'fum' = 'fum'
property 'bar' = 'bar'
我希望它不包括“酒吧”。
如果有更好的方法可以仅循环访问对象的公共属性,那么在这里也可以使用。