我一直在寻找不同的编程语言来入门。我发现 Ruby 中的 method_missing 很有意思,但是在 Java 和 PHP 中没有找到相同的方法。那么 Java 或 PHP 中是否有类似于 method_missing 的东西呢?
__call($name, array $args)
。它是一个通用方法,用于处理调用实例未定义的方法的情况。在PHP >= 5.3中还有__callStatic($name, array $args)
,其功能基本相同,只不过是在类级别上操作(显然)。class MyClass
{
public function __call($name, array $args)
{
echo "You tried to call $name(".implode(',',$args)."). Silly user.";
}
}
$k = new MyClass();
$k->doSomething(1,2,3); // You tried to call doSomething(1,2,3). Silly user.
__call()
。