php检测对象,检测对象属性在PHP中是否是私有的

博客探讨了如何在PHP中遍历对象的公共属性,而不包括私有属性。作者遇到的问题是在子类中无法预知私有属性的名称,因此需要一种方法来区分并忽略私有属性。目前的实现会导致包括私有属性在内的所有属性被输出。寻求解决方案来优化对象的公共属性迭代过程。
摘要由CSDN通过智能技术生成

我正在尝试制作一个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."'
";

}

return $string;

}

}

$test = new testClass();

echo $test->makeString();

给出输出:

property 'foo' = 'foo'

property 'fee' = 'fee'

property 'fum' = 'fum'

property 'bar' = 'bar'

我希望它不包括“酒吧”。

如果有更好的方法来迭代一个对象的公共属性,那么这也可以在这里工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值