Comportement du constructor privé dans le model de design unique en PHP

Considérons cet exemple de class singleton:

class Model_Acl { protected static $_instance; private function __construct($a) { echo $a; } public static function getInstance() { if(!isset(self::$_instance)) { self::$_instance = new Model_Acl('hello world'); } return self::$_instance; } } 

Dans la méthode statique de la même class, je peux initialiser la class à laquelle le constructor est privé. Cela signifie-t-il que la scope de l'initialisation de la class devient locale lorsque vous essayez d'instancier l'object dans la class?

J'apprécierais si quelqu'un pourrait expliquer le comportement de PHP en ce qui concerne l'instanciation de class en reference aux modificateurs d'access.

Vous pouvez l'initialiser via Model_Acl :: getinstance ().

Mais oui, cela fonctionnera.

Singleton n'est pas considéré comme une bonne pratique, vous devriez considérer l'Injection de dépendance.

http://fabien.potencier.org/article/11/what-is-dependency-injection .

Plus d'informations sur php Singletons

Meilleure pratique sur PHP singleton classs