【问题标题】:PHP Class arguments in functions函数中的 PHP 类参数
【发布时间】:2010-12-09 18:41:54
【问题描述】:

我在该类的一个函数中使用我的类的参数时遇到问题。

我有一个班级叫公司:

class company {

   var $name;

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

   function name() {
      echo $name;
   }
}

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

当我实例化它时(倒数第二行),construct magic 方法工作正常,并回显“TheNameOfSomething”。但是,当我调用 name() 函数时,我什么也得不到。

我做错了什么?任何帮助是极大的赞赏。如果您需要任何其他信息,请尽管询问!

谢谢
-贾尔斯
http://gilesvangruisen.com/

【问题讨论】:

    标签: php class function arguments


    【解决方案1】:

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

    class company {
    
       var $name;
    
       function __construct($name) {
          echo $name;
          $this->name = $name;
       }
    
       function name() {
          echo $this->name;
       }
    }
    
    $comp = new company('TheNameOfSomething');
    $comp->name();
    

    【讨论】:

      【解决方案2】:

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

      $this->name = $name;
      

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

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

      【讨论】:

        猜你喜欢
        • 2016-09-18
        • 2023-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多