【发布时间】:2011-06-10 10:09:10
【问题描述】:
是否可以在php中获取类中方法和属性的可见性?
我希望能够做这样的事情:
function __call($method, $args)
{
if(is_callable(array($this,$method))
{
if(get_visibility(array($this,$method)) == 'private')
//dosomething
elseif(get_visibility(array($this,$method)) == 'protected')
//dosomething
else
//dosomething
}
}
【问题讨论】:
-
如果你使用反射可能是可行的,但我不能保证性能。我也想不出你需要能够做到这一点的任何情况。也许您最好考虑一下为什么要这样做,以及是否真的有必要。你不想让你不需要的复杂性和魔法把你的代码弄得乱七八糟。
-
了解可见性的一个用例是,如果您在实现魔术方法
__get()时尝试模拟内置 PHP 错误的精度。
标签: php visibility access-modifiers