2015-07-20 129 views
1

我真的开始看PHP类,我不明白为什么这不起作用。我想如果你在构造函数中定义一个变量,你可以通过这个变量名来调用它。虽然这不是(?),让我给你举个例子:无法在PHP中通过他们的名称调用__construct()变量

class test { 

    public function __construct($item) { 

     $this->item= $anItem; 

    } 

    public function callvar() { 

     //Does not work 
     return $anItem; 

    } 

    public function callvar() { 

     //Works 
     return $this->item; 

    } 

} 

所以我的问题是,我做错了什么?或者您必须致电变量$this->item

回答

1

$ anItem是构造函数中的局部变量,所以它不是另一种方法的变量。但$这个 - >项目测试类的属性使得测试类每个方法都可以访问这个属性为全局变量

+0

嗯,所以没有其他访问'__contruct()'使用'$ this-> item'之外的其他变量? –

+0

个人而言,我总是在__contruct()函数中分配类属性。例如:__contruct($ p1,$ p2)用于$ this-> p1,$ this-> p2。然后其他人使用$ this-> p1,$ this-> p2。 __contruct()只是一种方法 –

+0

嗯,这就是我一直在做的事情。我只是想知道是否有办法缩短它:)谢谢 –