好的我知道我可以拥有私有属性来阻止在类之外使用属性,但是是否也可以在类之外使该属性不可见?
我的意思是,如果我选择了print_r()
或foreach()
这个类,是否可以设置一个方法以便该属性不显示?
答案 0 :(得分:0)
global
所有方法中的一些模糊变量名称,并将它们用作属性
我永远不想看到它完成,也不知道你为什么要隐藏开发人员检查的属性,但我认为它可以工作。
答案 1 :(得分:0)
您无法隐藏调试功能的属性,例如print_r / var_dump。但是,您可以使用__get/__set
模拟属性,如下所示:
<?php
class MyClass {
public function __get($name) {
if($name == "bar") {
/* take bar from somewhere */
}
}
public function __set($name, $value) {
if($name == "bar") {
/* store $value somewhere */
}
}
}
$foo = new MyClass();
$foo->bar = 1;
这样,您可以使用$ foo-&gt; bar,就像它是属性一样,即使实际上在执行var_dump等时没有这样的属性。