全球类方法?

时间:2011-06-07 13:10:41

标签: php class

我希望能够通过http帖子调用我的php类。所以我想出了这个。

$method = $_POST['method'];
$data = $_POST['data'];
$class_methods = get_class_methods('myclass');
if($method, $class_methods){
   $save = $myclass::$method($data);    
   echo $save;
}

在类中是否存在任何可能允许某人调用我尚未定义的方法的全局方法?

谢谢大家。

3 个答案:

答案 0 :(得分:1)

如果我理解正确,请查看:

http://php.net/manual/en/language.oop5.magic.php

构造如:

<?php
class Foo
{
    public static function bar() {
    }
}

$className = 'Foo';
$method = 'bar';

$return = call_user_func_array(array($className, $method), array() /* << the params go here */);

也是可能的,在PHP 5.3+上你可以这样做:

$return = $className::$method();

直接

答案 1 :(得分:0)

我相信这对你有用

__call and __callStatic

答案 2 :(得分:0)

当您尝试调用尚未定义的方法时,会调用一个魔术方法__call()

但是,您需要明确地将__call()方法分配给您的类,否则您将收到一个错误,即您正在调用未定义的方法。