Пожалуйста, обратитесь к этому Ввод кода
Этот код не дает ожидаемого результата
class User{
protected $name;
protected $age;
public function __construct($name, $age){
$this->name = $name;
$this->age = $age;
}
}
class Customer extends User{
private $balance;
public function __construct($name, $age, $balance){
$this->balance = $balance;
}
public function pay($amount){
return $this->name . ' paid $' . $amount;
}
}
$customer1 = new Customer('Adithya', 23, 50);
echo $customer1->pay(100);
Это дает только это Может кто-нибудь объяснить причину?
Подскажите, пожалуйста, как мне его назвать?
parent::__construct($params, $go, $here)
. Кроме того, мы не принимаем здесь изображения кода. Я уже отформатировал ваш блок кода ранее, но в будущем вам нужно будет сделать это самостоятельно.
Вам нужно вызвать функцию построения родительского класса parent::__construct(); stackoverflow.com/questions/1557608/…
Добро пожаловать в stackoverflow adithya! было бы лучше, если бы вы проверили руководство по php. вы можете вызвать конструктор User в конструкторе Customer, используя parent::__construct().
Добавьте следующую строку в конструктор класса Customer, чтобы конструктор родительского класса вызывался с правильными параметрами.
parent::__construct($name, $age);
Итак, код выглядит следующим образом
(У меня есть added a line in the pay method, чтобы сделать это более значимым)
<?php
class User{
protected $name;
protected $age;
public function __construct($name, $age){
$this->name = $name;
$this->age = $age;
}
}
class Customer extends User{
private $balance;
public function __construct($name, $age, $balance){
parent::__construct($name, $age);
$this->balance = $balance;
}
public function pay($amount){
$this->balance = $this->balance - $amount;
return $this->name . ' paid ' . $amount;
}
public function getbalance(){
return $this->name . ' now has ' . $this->balance ;
}
}
$customer1 = new Customer('Adithya', 23, 50);
echo $customer1->pay(100);
echo "<br>";
echo $customer1->getbalance();
?>
Дисплей будет:
Adithya paid 100
Adithya now has -50
(изначально Адитья имеет баланс 50, но он заплатил 100, так что новый баланс равен -50)
class Customer extends User{
private $balance;
public function __construct($name, $age, $balance){
$this->balance = $balance;
parent::__construct($name,$age,$balance);
}
public function pay($amount){
return $this->name . ' paid $' . $amount;
}
}
Как сейчас написано, ваш ответ неясен. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, которые помогут другим понять, как это отвечает на заданный вопрос. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Потому что вы никогда не вызываете функцию построения родительского класса.