変数は、一種のパターンである Registry クラスで定義する必要があります。
ワーキングデモ
レジストリの例
class Registry {
private static $registry = array();
private function __construct() {} //the object can be created only within a class.
public static function set($key, $value) { // method to set variables/objects to registry
self::$registry[$key] = $value;
}
public static function get($key) { //method to get variable if it exists from registry
return isset(self::$registry[$key]) ? self::$registry[$key] : null;
}
}
使用法
オブジェクトを登録するには、このクラスを含める必要があります
$registry::set('debug_status', $debug_status); //this line sets object in **registry**
オブジェクトを取得するには、getメソッドを使用できます
$debug_status = $registry::get('debug_status'); //this line gets the object from **registry**
これは、すべてのオブジェクト/変数を格納できるソリューションです。あなたが書いたような目的のために、単純な定数とdefine()
.
私のソリューションは、アプリケーションのどこからでもアクセスする必要があるあらゆる種類のオブジェクトに適しています。
編集
@decezeが提案したように、シングルトンとmake get、setメソッドを静的に削除しました。