我一直在寻找不同的语言来开始。我发现 Ruby 中的 method_missing 非常有趣,但无法在 Java 和 PHP 中找到相同的方法。 Java 或 PHP 中是否有类似 method_missing 的东西?
最佳答案
PHP 有 __call($name, array $args)
。它是一个包罗万象的东西,可以处理您调用未为实例定义的方法的情况。
在 PHP >= 5.3 中还有 __callStatic($name, array $args)
其功能主要是在类级别(duh)上以相同的方式运行。
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.
Java 中的等价物有点麻烦,它涉及到一个叫做 Proxy 的东西。类(class)。可以找到教程here -- 示例有点多,无法在此总结。
关于java - Java 或 PHP 中缺少方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7206440/