2011-03-08 84 views
0

我是PHP新手,需要您的帮助。我知道PHP中的this的基本功能。在PHP中的使用

class SwapClass 
{ 
    public $num1 = 0; 
    public $num2 = 0; 
    function __construct($val1,$val2) 
    { 
     echo "In constructor!!" . "<br />"; 
     $num1 = $val1; 
     $num2 = $val2; 
    } 
    public function display() 
    { 
     echo "1st value : " . $num1 . "<br />2nd value : " . $num2; 
    } 
} 

这是我的班。我把它叫做是:

$obj = new SwapClass(2,3); 
$obj->display(); 

值永远不会来到display()方法。我尝试在构造函数中回显它。确认价值即将到来。我然后修改代码为:

class SwapClass 
{ 
    public $num1 = 0; 
    public $num2 = 0; 
    function __construct($val1,$val2) 
    { 
     echo "In constructor!!" . "<br />"; 
     $this->num1 = $val1; 
     $this->num2 = $val2; 
    } 
    public function display() 
    { 
     echo "1st value : " . $this->num1 . "<br />2nd value : " . $this->num2; 
    } 
} 

现在工作正常。为什么不能在没有this的情况下访问变量?

是否this用于消歧?在我的例子中,我只有一个对象。那么问题是什么?

回答

3

任何类的成员在课堂上都被认可购买使用$this

否则它将被视为使用它的局部变量。

它不依赖于类对象的数量,您需要将它用于一个对象以及数百甚至更多。

http://tournasdimitrios1.wordpress.com/2010/10/11/using-the-keyword-this-in-php/

+0

从这里http://tournasdimitrios1.wordpress.com/2010/10/11/using-the-keyword-this-in-php/复制你应该提到的从源代码被复制你的答案并避免在SO上复制粘贴。你可以被暂停。 http://blog.stackoverflow.com/2009/04/a-day-in-the-penalty-box/ – Daric 2011-03-08 06:52:59

+0

@WhoAmI:谢谢。 – Gaurav 2011-03-08 06:55:53

+0

@gaurav。感谢您的澄清 – ruki 2011-03-08 06:59:03