Я уже просил эту ссылку перед запросом – ответ находится в контексте JAVA и это для конструктора в PHP .
Поскольку я начинаю, моя реализация моего PHP-кода в концепциях ООП, поэтому я действительно хочу узнать об использовании и преимуществах, а также о том, когда использовать конструктор в абстрактном классе PHP.
Просьба привести пример в реальном мире, чтобы лучше понять концепцию.
PS – Несмотря на то, что я руководствуюсь PHP-инструкциями для понимания концепций ООП, но я нахожу это немного трудным для понимания, любая помощь в ссылках / блоге, чтобы следовать, действительно заметна.
Мой код –
<?php abstract class grandClass { abstract function grandmethod(); function __construct() { echo "I am grandClass constructor"; } } abstract class parentClass extends grandClass { abstract function raiseFlag(); function grandmethod() { echo "This is grandmethod!!!","<br />"; } public function getValue() { echo "Zero is the blackhole for the numbers!!","<br />"; } } class childClass extends parentClass { function raiseFlag() { echo "Peaceful thoughts!!","<br />"; } } $myobj = new childClass(); $myobj->raiseFlag(); $myobj->getValue(); $myobj->grandmethod();
Конструктор в абстрактном классе такой же, как в конкретном классе. Используйте конструкторы, когда они необходимы, например, если вам нужно выполнить инициализацию некоторых данных или присвоить некоторые ресурсы.
Я приведу вам пример:
abstract class Db { protected $pdo; public function __construct($pdo) { $this->pdo = $pdo; } abstract function select($table, $fields); } class Db_Mysql extends Db { public function select($table, $fields) { // Build MySQL specific select query // then execute it with $this->pdo } } class Db_Pgsql extends Db { public function select($table, $fields) { // Build PostgreSQL specific select query // then execute it with $this->pdo } } // Usage: $db = new Db_Mysql($pdo); $db->select('users', array('id', 'name'));