ホームページ > バックエンド開発 > PHPチュートリアル > PHPクラスの&thisの意味を教えてください

PHPクラスの&thisの意味を教えてください

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-23 14:09:16
オリジナル
951 人が閲覧しました

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;
ログイン後にコピー
この文の意味を教えてください。


ディスカッションへの返信(解決策)

クラス全体の意味を教えてください

4 つの異なる書き方!
それについて議論する必要はありません

このように書かれた CI フレームワークのオープンソースの事例を見たことがあります

それなら、コードを手放しましょう!

クラス名をクラスのコンストラクタとして使用するのがphp4での書き方です。現在 php5 でサポートされていますが、php5 のオブジェクトはすべて参照として渡されるため、特定の状況ではエラーが報告されます。コードはシングルトン パターンを適用することを目的としています
が、シングルトン パターンのルールに準拠していません
本来、CI_Base::get_instance(); は CI_Base クラスのインスタンスを返すはずですが、複数の実行では同じインスタンスが返されます
コードは最初に新しい CI_Base を作成してから CI_Base::get_instance( ) が有効になる必要があります
では、新しい CI_Base が再度使用された場合に競合は発生しないでしょうか?

そのようなコードはあなたを迷わせるだけです


それならコードを手放してください!

クラス名をクラスのコンストラクタとして使用するのがphp4での書き方です。現在 php5 でサポートされていますが、php5 のオブジェクトはすべて参照として渡されるため、特定の状況ではエラーが報告されます。コードはシングルトン パターンを適用することを目的としています

が、シングルトン パターンのルールに準拠していません

本来、CI_Base::get_instance(); は CI_Base クラスのインスタンスを返すはずですが、複数の実行では同じインスタンスが返されます
コードは最初に新しい CI_Base を作成してから CI_Base::get_instance( ) が有効になる必要があります
では、新しい CI_Base が再度使用された場合に競合は発生しないでしょうか?

そのようなコードはあなたを迷わせるだけです

投稿に対してポイントが与えられることを理解しました。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート