单例模式指自我指向

很多时候用单例模式的时候,需要一个判断,比如instanceof instace  或者是if…有时候会给__construct 加上一个private的属性,通过静态的方式调用,

但是有一种情况,就会让人很纠结,就是必须在__construct中将自己的实例化变量复制,但是却不能通过new的方式来赋值,比如A 对象 __construct中调用了一些函数,而这些函数中需要调用A对象的实例化对象,这个时候就会很纠结,比如今天我首先通过让子对象继承了父对象,然后在子函数的__construct中执行父函数的__construct然后子函数中调用了父函数的一些属性,这个时候因为__construct 没有完成,在父函数中new自身,然后判断是否已经实例化了的方式就行不同了,会陷入死循环,也不能__cosntruct 设置 private了,因为必须有构建函数的执行,这个时候有一种比较好的写法 $instance = &$this;这个语句是可以用到__construct中的,而不会进入死循环,然后子对象和其他的函数,就可以引用$instance 变量了,这样就很完美的解决了单例 __construct 无法判断自身的问题

Leave a comment

Your email address will not be published.

*