为什么无法识别全局变量?

时间:2015-11-25 11:05:18

标签: php object global

我想调用代码中某个点定义的变量。我使用全局关键字,但似乎变量无法识别。当我在本地设置变量时它工作得很好。 (它是 $ title 变量,它接收某个对象的静态函数的值)

这一项工作:

class Book {
    public function represent() {
        $titles = Title::all_by_id();
        $title = $titles[$this->title_id];
        return $title->represent().'_'.$this->id;
    }
}

这一个没有:

$titles = Title::all_by_id();

在另一个档案中

 class Book {
     public function represent(){
        global $titles;
        $title = $titles[$this->title_id];
        return $title->represent().'_'.$this->id;
     }
 }

它发送错误:

  

PHP致命错误:在

中的非对象上调用成员函数represent()

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

我解决了,问题是我将$titles变量设置在主要上下文的不同子上下文中,而不是定义了Book类的

当我改变了我定义该变量的位置时,我解决了这个问题,我已将它放在主要的上下文中。