各位兄弟,最近小弟在看天天团购的代码,结果在/modules/index.mod.php中看到这么一段代码:function ModuleObject( $config )
{
$this->MasterObject($config);
$runCode = Load::moduleCode($this);
$this->$runCode();
}第五行代码中的$this->$runCode();这句在PHP中有什么特殊含义吗?由于本人PHP没有经过正规的培训,所以一些不太常用的基础规则不明白,希望各位前辈能指导一下,感激不尽。

解决方案 »

  1.   


    class ModuleObject extends MasterObject
    {
    function ModuleObject( $config )
    {
    $this->MasterObject($config);
    $runCode = Load::moduleCode($this);
    $this->$runCode();
    }
    function Main()
    {
    $clientUser = get('u', 'int');
    if ( $clientUser != '' )
    {
    handler('cookie')->setVar('finderid', $clientUser);
    handler('cookie')->setVar('findtime', time());
    }
    $data = logic('product')->display();
    $data || header('Location: '.rewrite('?mod=subscribe&code=mail'));
    $product = $data['product'];
    $this->Title = $data['mutiView'] ? '' : $product['name'];
    include handler('template')->file($data['file']);
    }
    function ExpressConfirm()
    {
    $oid = $this->Get['id'];
    $result = $this->OrderLogic->orderExpressConfirm($oid);
    if ( $result )
    {
    $this->Messager(__('已经确认收货,本次交易完成!'), '?mod=me&code=order');
    }
    else
    {
    $this->Messager(__('无效的订单号!'), '?mod=me&code=order');
    }
    }
    }这是类的代码,我已经查看过父类和这个类,没有相关的函数
      

  2.   

    手册云:变量函数
    PHP 支持变量函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且将尝试执行它。
      

  3.   

    $this->$runCode();
    这必然是在你这个类中的了
      

  4.   

    class ModuleObject extends MasterObject
    去他的父类 还有 公共类去查找 
    去配置文件 config.php(一般都叫这个)去看看引入的类文件
      

  5.   

    $runCode = Load::moduleCode($this);
            $this->$runCode();
    第二行的$runCode和第一行的$runCode有关系不?
      

  6.   

    这个已经找到了,如3楼所说,变量函数,第一行的$runCode返回的字符串就代表的函数名称。例:    $func = 'Main';
        $func();
        function Main(){
            echo "This is a variable function";
        }运行的就是Main这个函数,搜索的域是应该是这个变量所在的作用域内的非成员函数。
      

  7.   

    就是执行类中的
    $runCode
    这个函数。
    可以echo $runCode看下
      

  8.   

    我想问下extends MasterObject继承的父类在哪里?是php的基本类么?一直找不到MasterObject