Не удается получить доступ к свойству из родительского класса

Единственное, чего я пытаюсь добиться, — это получить доступ к Sql собственность в классе из класса В, но мое понимание должно быть полностью за решеткой.

Я старался:

class A {
public $Sql; /*object*/

public function __construct() {
$this->Sql = new MySQLi("localhost", "user", "password", "database");
}
}

class B extends A {

public function __construct() {
$this->foo();
}

public function foo() {
var_dump($this->Sql); // NULL
var_dump(parent::Sql); // Error due to Sql not being a constant, can't set an object as a constant.
}

}

$A = new A();
$B = new B();

Но код не ведет себя так, как я надеюсь.

Надеясь, что кто-то может указать мне в правильном направлении, где я иду не так.

2

Решение

$A = new A();
$B = new B();

Эти две строки выше создают два разных объекта, которые не имеют ничего общего друг с другом.

Так как у вас также есть конструктор в классе B родительский конструктор не вызывается неявным, означает, что вы должны изменить свой код и вызвать конструктор из класса A в классе B, например,

public function __construct() {
parent::__construct();
$this->foo();
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]