<?php
class BaseClass {
protected $value1;
public function set_value1($new_value1) {
$this->value1 = $new_value1;
}
public function get_value1() {
return $this->value1;
}
}
?>
<?php
require_once "BaseClass.php";
class NextClass extends BaseClass {
public $value3;
public function __construct($this->value1, $val3) {
$this->value3 = $val3;
}
}
$r = new NextClass("test","Cat");
var_dump($r->get_value1());
?>
Хочу использовать переменную $value1 в конструкторе наследника.
Ошибка в этой строчке: public function __construct($this->value1, $val3)
Ошибка Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ')' in
Что-то я недопонимаю в ООП PHP.
Тут ещё нет this, поскольку это ссылка на свой класс. Она доступна только внутри конструктора.
Чтобы использовать value1 из родительского класса, её надо сделать protected, а не private, и в дочернем классе спокойно к ней обращаться по $this->value1.
<?php
class BaseClass {
protected $value1;
public function set_value1($new_value1) {
$this->value1 = $new_value1;
}
public function get_value1() {
return $this->value1;
}
}
class NextClass extends BaseClass {
public $value3;
public function __construct($value, $val3) {
$this->value3 = $val3;
$this->value1 = $value;
}
}
$r = new NextClass("test","Cat");
var_dump($r->get_value1());
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости