函数中的PHP类参数

时间:2009-10-24 18:58:35

标签: php class function arguments

我在该类的一个函数中使用我的类中的参数时遇到了麻烦。

我有一个叫做公司的课程:

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/

2 个答案:

答案 0 :(得分:12)

您需要使用$ this关键字设置class属性。

class company {

   var $name;

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

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

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

答案 1 :(得分:1)

在任一方法中使用$ name时,$ name变量的范围仅限于创建它的函数。其他方法或包含类无法读取变量或甚至不知道它存在,所以你必须使用$this->前缀设置类变量。

$this->name = $name;

这允许值是持久的,并且可用于类的所有函数。此外,变量是公共的,因此任何脚本或类都可以读取和修改变量的值。

$comp = new company();

$comp->name = 'Something';

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