Maison > développement back-end > tutoriel php > 请教一下在php类中 这个&this表示什么意思

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

WBOY
Libérer: 2016-06-23 14:09:16
original
946 Les gens l'ont consulté

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();}
Copier après la connexion



self::$instance =& $this;
Copier après la connexion
  请教一下 这句是 什么意思 ?


回复讨论(解决方案)

请教整个类是什么意思

四不像的写法!
没有必要探讨吧

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

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

谢谢 我明白了  结贴给分

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal