请教一下在php类中 这个&this表示什么意思
程序员文章站
2022-06-02 14:07:21
...
class CI_Base { private static $instance; public function CI_Base() { self::$instance =& $this; } public static function &get_instance() { return self::$instance; }}function &get_instance(){ return CI_Base::get_instance();}
self::$instance =& $this;请教一下 这句是 什么意思 ?
回复讨论(解决方案)
请教整个类是什么意思
四不像的写法!
没有必要探讨吧
我见CI框架的一个开源案例 有这样的写法
那就放弃你手中的代码!
使用类名作为类的构造函数,是php4的写法。虽然目前php5也支持,但不保证以后也支持
php5中对象均以引用传递,声明为引用是多此一举,在特定的场合中还会报错
这段代码本意是套用单例模式
但又不符合单例模式的规则
本来 CI_Base::get_instance(); 应返回一个 CI_Base 类的实例,多次执行返回的都是同一个实例
但你的代码却要 先 new CI_Base 后 CI_Base::get_instance() 才生效
那再次 new CI_Base 不就发生冲突了吗?
这样的代码,只会引导你进入歧途
那就放弃你手中的代码!
使用类名作为类的构造函数,是php4的写法。虽然目前php5也支持,但不保证以后也支持
php5中对象均以引用传递,声明为引用是多此一举,在特定的场合中还会报错
这段代码本意是套用单例模式
但又不符合单例模式的规则
本来 CI_Base::get_instance(); 应返回一个 CI_Base 类的实例,多次执行返回的都是同一个实例
但你的代码却要 先 new CI_Base 后 CI_Base::get_instance() 才生效
那再次 new CI_Base 不就发生冲突了吗?
这样的代码,只会引导你进入歧途
谢谢 我明白了 结贴给分