私はここでイライラしている。私は、シングルトンオブジェクトを利用する認証システム(ゼロから構築)を持っています。PHP Singletonオブジェクトが消えますか?
シングルトンオブジェクトは、基本的にセッションのセキュリティを管理し、セッションハイジャックやその他の悪意のあるアクティビティに対して安全な機能を備えています。
これらの機能はメンバーデータによって異なります。
ここで問題は、PHPがこれらのシングルトンオブジェクトを破棄して、ユーザーが新しいページをリフレッシュまたは移動するたびに破棄されるようになってしまうことです。
ここは、セッションクラスのプロトタイプです:
class session extends login{
public $sessionid;
private $fingerprint;
public static $temp=0;
public static $s_instance = NULL;
public static function s_getinstance(){
if (!isset(session::$s_instance) || !isset(session::$sessionid)) {
$c = __CLASS__;
if(isset(session::$s_instance)) {
session::$s_instance = 0;
}
session::$s_instance = new $c;
self::regenerate_id_name();
self::$temp +=1;
}
return session::$s_instance;
}
}
最後の機能は、それがNULLであれば、それはオブジェクトを作成し、関連活動を管理するとともに、それをバック投げ、データメンバ($のs_insntance)をチェック新しいセッションを作成することになります。
データメンバーがnullでない場合は、既存のオブジェクトを返します。
または理論的には、それはやるべきことです。しかし、新しいページにアクセスしてs_getinstance関数を呼び出すたびに、何らかの理由で新しいオブジェクトを作成しようとし、古いデータが失われます。ここで私を助けてください。
いくつかの適切なインデントについてのあなたのコードが読みやすくするためには何? – ThiefMaster
*(関連)* [シングルトンが必要な人](http://stackoverflow.com/questions/4595964/who-needs-singletons/4596323#4596323)と[The Clean Code Talks](http://www.youtube。 – Gordon
'public static $ s_instance = NULL;' ..あなたのインスタンスは**どこからでも**変更できます! –