2009-10-24 67 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'