【问题标题】:PHP this pseudo variablePHP 这个伪变量
【发布时间】:2011-07-18 23:27:46
【问题描述】:

来自 PHP 手册:

class Bear {
// define properties
public $name;
public $weight;
public $age;
public $sex;
public $colour;

// constructor
public function __construct() {
    $this->age = 0;
    $this->weight = 100;
}

如果将以下行:$this->age = 0; 更改为 $age = 0;,我对对象和类会发生什么感兴趣,此更改有什么确切影响?

【问题讨论】:

  • 您的意思可能是$age = 0;,而不是age = 0;
  • @icktoofay - 这就是凌晨 1.26 对男人的影响

标签: php oop this


【解决方案1】:

类变量“age”不会受到更改的影响。这是一个很好的例子来说明为什么会这样:

class Bear {
    // define properties
    public $name;
    public $weight;
    public $age;
    public $sex;
    public $colour;

    // constructor
    public function __construct($age) {
        $age = $age * 2; // Convert to bear years.
        $this->age = $age;
        $this->weight = 100;
    }
}

现在当我们创建熊时,我们可以选择通过构造函数设置年龄:

$ben = new Bear(8);

我们也可以像在构造函数中那样修改熊的年龄:

$ben->age = 12;

这给变量一个范围。本的年龄对他来说是特定的。这是一个局部变量。

【讨论】:

  • 本的年龄是 16 岁。:)
【解决方案2】:

您将为局部变量年龄分配 0。由于它不存在,它将被初始化。一旦构造函数超出范围,年龄就会被遗忘。班级成员年龄不会改变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多