2009-10-24 30 views
3

我在使用該類的某個函數中的類的參數時遇到問題。函數中的PHP類參數

我有一個類叫公司:

class company { 

    var $name; 

    function __construct($name) { 
     echo $name; 
    } 

    function name() { 
     echo $name; 
    } 
} 

$comp = new company('TheNameOfSomething'); 
$comp->name(); 

當我將它實例化(倒數第二行),構建魔術方法工作正常,並回聲出「TheNameOfSomething。」但是,當我調用name()函數時,我什麼也得不到。

我在做什麼錯?任何幫助是極大的讚賞。如果您需要任何其他信息,只需詢問!

感謝
-Giles
http://gilesvangruisen.com/

回答

11

您需要設置使用$ this關鍵字類屬性。

class company { 

    var $name; 

    function __construct($name) { 
     echo $name; 
     $this->name = $name; 
    } 

    function name() { 
     echo $this->name; 
    } 
} 

$comp = new company('TheNameOfSomething'); 
$comp->name(); 
1

當這兩種方法使用$名稱,$ name變量的範圍僅限於,它是在創建功能。其他方法或含類無法讀取該變量,甚至不知道它存在,所以您必須使用$this->前綴來設置類變量。

$this->name = $name; 

這允許該值是持久的,並且可用於該類的所有功能。此外,變量是公共的,所以任何腳本或類都可以讀取和修改變量的值。

$comp = new company(); 

$comp->name = 'Something'; 

$comp->name(); //echos 'Something'