以下の Register クラスを使用して、インスタンスを作成し、それを配列に保存します。
// The register class
class Register {
private static $objects = array();
private function __construct() {}
private function __clone() {}
public static function Singleton($class) {
if (in_array($class, self::$objects)) {
return self::$objects[$class];
}
return self::$objects[$class] = new $class();
}
}
// Example
class examp {
public static function Singleton() {
return Register::Singleton(get_class());
}
public function message() {
echo "Hello";
}
}
$var = examp::Singleton();
$var2 = examp::Singleton();
// I'm using that way to make sure, but tell me false
if($var === $var2){
echo "Yes";
} else {
echo "No";
}
$var が $var2 の同じインスタンスを取得するかどうかを確認するときは、false または no を教えてください。
$var と $var2 が同じインスタンスを取得しない理由を知りたいのですが、Register クラスの問題は何ですか?