首頁 > 後端開發 > php教程 > 请教一下在php类中 这个&this表示什么意思

请教一下在php类中 这个&this表示什么意思

WBOY
發布: 2016-06-23 14:09:16
原創
946 人瀏覽過

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 不就发生冲突了吗?

这样的代码,只会引导你进入歧途

谢谢 我明白了  结贴给分

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板