php中的魔术函数__call()用于类中。有没有类似的魔术功能,但功能,而不是?像__autoload()是用于函数。魔术函数__call()函数?
例如像这样
function __call($name, $arguments) {
echo "Function $name says {$arguments[0]} ";
}
random_func("hello");
php中的魔术函数__call()用于类中。有没有类似的魔术功能,但功能,而不是?像__autoload()是用于函数。魔术函数__call()函数?
例如像这样
function __call($name, $arguments) {
echo "Function $name says {$arguments[0]} ";
}
random_func("hello");
不,我不认为这样一个神奇的功能存在。此
一个解决办法是把你的功能集成到一个静态类,并添加__callStatic
魔术方法的那类(> PHP 5.3只,恐怕):
class Func
{
/** As of PHP 5.3.0 */
public static function __callStatic($name, $arguments)
{
// Note: value of $name is case sensitive.
echo "Calling static method '$name' "
. implode(', ', $arguments). "\n";
}
}
Func::random_func("hello!");
对于PHP < 5.3,你可以做同样的事情,但你必须实例化一个对象并使用神奇的方法。
$Func = new Func;
$Func->random_func("hello!");
号调用并不致命错误存在将总是结果的功能。
**也许一个zend扩展可以拦截这与fcall_begin_handler
,但我不知道。