@Walk, там в примере куча ошибок. Про статические свойства ты заметил, там доллары должны быть. Плюс к статическому свойству через $this-> обращаться нельзя, как тебе твой знакомый заметил. Вообще, лучше воспользоваться DI-контейнером, положить туда экземпляр PDO и радоваться. Всё равно этот пример ничего больше интересного не сделал бы, даже если бы был нормальным. Вот прекрасный фрейморко-независимый DI-контейнер. http://php-di.org/
Ну, вообще-то это я сам заметил. Знакомый вначале сказал, что в некоторых случаях так можно делать, когда сказал ему об ошибке: Он таки признал, что да, нельзя. Меня больше удивляет, почему такой плохой пример разместили на вроде бы как авторитетном ресурсе ruhighload.com
Хорошие di-контейнеры могут сами подставлять в конструкторы данные. Потом, можно определять через фабрику элемент, сразу с инициализацией. PHP: class A { public function __construct(PDO $db); } $builder = new DI\ContainerBuilder(); $builder->addDefinitions([ PDO::class => function (ContainerInterface $c) { /* сюда можно вставить ещё подготовительных действий */ return new PDO(/* params */; } ]); $container = $builder->build(); $a = $builder->make(A::class);