如何在不使用外部库(仅使用纯 PHP)的情况下检测类属性是否为私有或受保护?如何检查我是否可以从类的外部设置属性,还是不能设置?
如何在不使用外部库(仅使用纯 PHP)的情况下检测类属性是否为私有或受保护?如何检查我是否可以从类的外部设置属性,还是不能设置?
<?php
class Test {
private $foo;
public $bar;
}
$reflector = new ReflectionClass(get_class(new Test()));
$prop = $reflector->getProperty('foo');
var_dump($prop->isPrivate());
$prop = $reflector->getProperty('bar');
var_dump($prop->isPrivate());
?>
print_r($object_or_class_name);
它会为您呈现出您可以或无法访问的属性。class tempclass {
private $priv1 = 1;
protected $prot1 = 2;
public $pub1 = 3;
}
$tmp = new tempclass();
print_r($tmp);
exit;
只是为了说明我有一个私有属性,一个受保护的属性和一个公共属性。然后我们看到print_r($tmp);
的输出:
tempclass Object
(
[priv1:tempclass:private] => 1
[prot1:protected] => 2
[pub1] => 3
)
还是我误解了你的帖子?哈哈