【发布时间】:2010-12-03 02:30:57
【问题描述】:
我正在处理的项目包含类似于 call_user_func(_array) 的包装器,它在执行前会进行一些检查。 其中一项检查是 method_exists (如果提供的第一个参数是类的实例,第二个是方法名称) 另一个是_callable。 如果其中一项检查失败,该函数将引发异常。
我的代码包含一个带有函数名称(setFoo、setBar 等)的数组和用于重载的 php 魔术函数(__call),它处理某些变量的设置、替换和删除(更好的某些数组元素)。
问题: 如果未定义函数,method_exists 将返回 false。
如果 __call 函数正确处理请求,我是否有机会获得 true?
【问题讨论】:
-
好问题,我会玩这个。
-
需要的是另一种“神奇的方法” __canCall 什么的……
-
is_callable() 适用于类的实例。我根本不明白您为什么要使用 method_exists() 。 is_callable() 做了所有 method_exists() 做的事情,而且它与 __call() 一起工作。
标签: php overloading