【问题标题】:PHP - Adding a value to a variable inside a classPHP - 向类中的变量添加值
【发布时间】:2016-03-04 10:01:42
【问题描述】:

我正在尝试使用函数向类中的公共变量添加值。我不确定该怎么做。我目前的PHP代码如下:

class Truck {
public $Odometer = 0;
public $Model = 'Triton';
public $Price;
public $Horsepower;

public function __construct() {
  $this->Price = 30;
}
public function __construct() {
  $this->Horsepower = 205;
}
public function ShowOdometer() {
  echo "Odometer: ".$this->Odometer;
}
public function ShowModel() {
  echo "Model: ".$this->Model;
}
public function ShowPrice() {
  echo "Cost: ".$this->Price;
}
public function ShowHorsepower() {
  echo "Horsepower: ".$this->Horsepower
}
}

我正在尝试通过一种方法将整数值添加到 $Price 和 $Horsepower。我尝试使用 __construct() 虽然这给了我一个致命错误:Cannot redeclare Truck::__construct().

【问题讨论】:

  • 如错误所说Cannot redeclare Truck::__construct()。一个类有一个 construct() 函数。
  • 你不能有两次构造函数,否则一切正常。 (类中的变量也称为属性;函数称为方法)

标签: php function class variables


【解决方案1】:

您在class 中定义了两个constructor,因此出现错误-Fatal error: Cannot redeclare Truck::__construct()。试一试——

class Truck {
public $Odometer = 0;
public $Model = 'Triton';
public $Price;
public $Horsepower;

public function __construct() {
  $this->Price = 30;
  $this->Horsepower = 205;
}
public function ShowOdometer() {
  echo "Odometer: ".$this->Odometer;
}
public function ShowModel() {
  echo "Model: ".$this->Model;
}
public function ShowPrice() {
  echo "Cost: ".$this->Price;
}
public function ShowHorsepower() {
  echo "Horsepower: ".$this->Horsepower
}
}

【讨论】:

  • 您对构造函数的看法是对的,但也有可能(如果他需要超过 1 个构造函数)只命名 2nd 1 不同?像constructor2?
  • 感谢您的回答;以及上面评论的所有其他人。这已经解决了这个特殊问题!我必须做些什么来确保 __construct() 的函数运行并更新值,以便我可以使用 ShowHorsePower?
  • @baboizk。那将是该班级的member function。这是正常的。但是同一个类不能有两个构造函数。
  • @Sougata 那我得读一读,谢谢。不熟悉这意味着什么。我现在一直在使用一个 API 类,然后它有很多“成员函数”。
  • 我建议您了解一下 OOP 概念。
猜你喜欢
  • 2011-08-17
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
相关资源
最近更新 更多