web-dev-qa-db-ja.com

%s、%1 $ sなどの意味は何ですか?

Q&Aスレッドからいくつかの古いことに会うようになりましたが、私はまだそれらの意味がわからず、それらを使用する理由がわからないという状態で自分自身を見つけました。

  • %1$s - (ウィジェットIDをロードするために見つかりました)
  • %2$s - (ウィジェットクラスをロードするために見つかりました)
  • %s - (見つかった ここ

そして、次のことはどのように機能するのでしょうか。コードフォーマットの説明はどういう意味ですか?

  • !Website::getThemeOption("format_post/{$post_format}/content/hide")): - (見つかった ここ
  • if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return; - (見つかった ここ

この質問は何度も繰り返すことができます...、私は知っています。しかし、このようなことはどこでも明確に説明されていません。私は、それらの意味と目的が欲しいだけでなく、それらの動機とそれらがどのように機能するのかを理解することができるようにいくつかの内的/中核的説明が欲しいのです。

そして、そのようなことがすでにCodexで明確に定義されているならば、私はそれらを読みたいです。そのようなリストがすでに整理されているのであれば、 list にそのような不思議なことを書いてもらいたいです。

12
Mayeenul Islam

これは本当に一般的なPHPプログラミングの問題であり、そのためにクローズされるかもしれません。しかしそれが起こる前に、私があなたのためにこれのいくつかを片付けることができないかどうか見てみましょう。

%記号で始まる文字列は "printf format" です。例えば、%2$sは、「このトークンを2番目のパラメーターで置き換え、それをストリングのように扱う」と変換されます。

"Today is {$day}"のように、変数が文字列内で中括弧で囲まれている場合は、"Today is $day"のように中括弧なしで変数をそこに配置するのと同じです。しかし、このように変数をフォーマットすると目立つようになるので、変数があることがより明確になります。また、変数名の横にある他の文字が名前の一部として解釈されるのを防ぎます。中括弧がなければ、PHPは"Your robot name would be {$firstName}Number5"の処理方法を知っているでしょうか。これは"$firstNameNumber5"を見て、単に$ firstNameではなく$ firstNameNumber5という名前の変数を探します。

最後の例であなたが何を求めているのかよくわかりません。それはあなたが戸惑う__FILE__ですか?それは PHP Magic Constant で、コードの一部が含まれているファイルへのフルパスに置き換えられます。

11
Dave Ross