質問: グローバル$ post v/s $ globals ['post']を使う それはおそらくphp質問のほうが多いですが、使い方に違いがあるかどうか知りたいのですが。global $post; echo $post->id; と比較したときecho $globals['post']->id; wordpressで投稿のidにアクセスする。この[ answer on soは、最初の方法の方が処理が早く、2番目の方法の方が書き込みが速いことを示しています。私はまた、最初の方法がcodexで頻繁に言及されているのに対し、2番目の方法は the_content filter ページで言及されていることに気づきました。これは好みの問題だけですか?それとも、パフォーマンスとセキュリティにも影響しますか?ありがとう
回答: echoだけを使用している場合でも違いはありません。違うのはunset()です。function test_unset_1() { global $post; unset( $post ); } function test_unset_2() { unset( $globals['post'] ); } test_unset_1(); echo $globals['post']->id; // will work test_unset_2(); echo $globals['post']->id; // will fail その理由は、unset()は最初のケースではローカル参照だけを破壊し、2番目のケースでは実際のグローバルオブジェクトを破壊するからです。読みやすくするために、必ず$globals['post']を使用してください。変数がどこから来たのかを確認するのは簡単です。