私は PHP を (まだ) 始めたばかりで、学びながら勉強しています。
特定の変数を取得してそのプロパティにアクセスする必要があることがよくあります。
リーリー $user_info = get_userdata($id);
を一度取得して、必要に応じて使用することを好みます。
同じファイル内ですが、異なる <?php?>
ブロック
しかし、$user_info
はグローバルではないため、ブロック間で共有できないのではないかと思います。
通常のアプローチは何ですか?
P粉7138468792023-10-23 13:15:37
ブロック (ループ、if ステートメント ) 内で使用できますが、関数 内では使用できません。関数内で動作させるには、global
キーワードを使用する必要があります:
PHP 変数スコープの詳細については、公式ドキュメントをご覧ください:)< /a>
P粉2629261952023-10-23 09:09:44
PHP コード ブロックに意味を与えすぎています。
これは世界的なものではありません。
これらのブロックは同じ PHP スクリプトに属します。これは HTML を出力するための賢い方法にすぎず、それ以上のものではありません。これを echo HTML に置き換えても、何の違いもありません。
PHP スクリプト全体は、繰り返しではなく一度に実行されます。ご想像のとおり、PHP ブロックがサーバー側で実行され、次に HTML ブロックがクライアント側で実行され、その後、クライアント側の PHP ブロックに戻ると考えてください。サーバーサイドなどこれは間違っています。
PHP スクリプト全体がサーバー側で実行され、ブラウザーでプレーン HTML が生成され、その後消えます。
そのため、同じ PHP スクリプト内で HTML フォームとそのハンドラーの両方をプログラムすることはできません。後者を前者の後に置くだけです。ハンドラーが適切に動作するには、 サーバー を再度呼び出す必要があります。これはまったく別の呼び出しであり、同じスクリプトの別のインスタンスであり、前回の呼び出しについては何も知りません。この呼び出しはとうに廃止されています。 PHP についてもう 1 つ知っておくべきことがあります:
PHP スクリプトの実行はアトミックです。これは、ブラウザ内で常に実行されているデスクトップ アプリケーションや、デスクトップ アプリケーションに常に接続されているデーモンとは異なります。これはコマンド ライン ユーティリティに似ており、仕事を行って終了します。独立して実行されます: