2017-05-28 1 views
2

PHPバックエンドを開発するときは、静的変数を使用してログインしたユーザーを保存することに決めました。 私が誤解していない場合、これはバックエンドへの各呼び出しがそのバックエンドの新しいインスタンスを作成する場合にのみ機能します。そうでなければ、2つの呼び出しが重複すると、ログインしたユーザーが無効になり、間違った結果が生成される可能性があります。バックエンドを呼び出すと、そのバックエンドの新しいインスタンスが作成されますか?

答えを見つけるのが難しいと分かっているので、バックエンドへの呼び出しが完了したときに静的な「ログインしたユーザー」変数がまだ存在するかどうかをチェックする単体テストを作成しようとしました。これは変数が実際にはnullであることを示していました。ただ、私はここでこの質問をすることに決めました。

答えて

2

はい、いいえ。 OOPコンテキストで意図されているように、実際にはインスタンスではないため、静的変数は2つの間で永続化されないという意味で「新しいインスタンスを作成」します。

staticキーワードは、その正確なスクリプト実行の静的変数を参照します。

PHPは、応答が送信されるとすぐにすべてを忘れてしまいます。 PHPがリクエストを受け取るたびに、環境が再作成され、2回の実行の間に何も保持されません。


ただし、ユーザーに静的を使用することは悪い考えです。これは広すぎますが、dependency injectionmvc principlesを調べる必要があります。

+1

ありがとう、ちょうど私が知る必要があったこと! – M0CH1R0N

関連する問題