php静的

WBOY
リリース: 2016-06-23 14:18:41
オリジナル
1118 人が閲覧しました

php static oop

RT、CI フレームワークを使用して php Web ページを作成すると、static キーワードがあまり役に立たないことがわかりました。簡略化されたコードは次のとおりです:
class A extends CI_Controller{    private static $num = 0;    public function f1(){        self::$num = 1;        this->load->view('v1');    }    public function f2(){        if(self::$num === 1){            this->load->view('v2');                    }else{            this->load->view('v3');        }    }}
ログイン後にコピー

最初に関数 f1 にアクセスし、次の場所にジャンプします。 f1 の v1 ページに戻ると、v1 の f2 に戻りますが、この時点では num がリセットされており、v3 にジャンプします。これはなぜですか? PHPの静的は不完全ですか?

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

「その後、v1 の f2 に戻ります」
どうやってジャンプしましたか?

v1 で A がインスタンス化されたら、当然 num はリセットされます

必要なのは「シングルケースモード」の A だと思います

「それから v1 の f2 に戻ります」
あなたは How to dance?

A が v1 でインスタンス化されると、当然 num はリセットされます

必要なのは A の「単一ケース モード」だと思います
単一関心モードについては今のところ話さないようにしましょう。 v1 に戻る ああ、これは単なるリンクです、www.xxxx.com/index.php/A/f2 で、すぐに戻ります

それなら冗談ですよ! URLから入っても元のサイトには戻れますか?

それなら冗談だよ! URLから入っても元のサイトには戻れますか?
え?そうですね…直感的にそう思います。 。
このクラスはメモリにロードされるときに変数 num を持っていると思いますが、静的であるため、ページジャンプによるオブジェクトの消滅によって解放されないため、再度入力されたときに num は依然としてあるはずです物体が死ぬ前の様子。

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