私はWebmonkey's PHP and MySql Tutorial, Lesson 2を見ています。私はそれがPHPリテラルだと思う。 %s
の意味は?少なくとも最初の2つのコードブロックでは、whileループ内の関数print_f()
の中にあります。%SはPHP、HTML、またはXMLで何を意味しますか?
printf("<tr><td>%s %s</td><td>%s</td></tr>n", ...
私はWebmonkey's PHP and MySql Tutorial, Lesson 2を見ています。私はそれがPHPリテラルだと思う。 %s
の意味は?少なくとも最初の2つのコードブロックでは、whileループ内の関数print_f()
の中にあります。%SはPHP、HTML、またはXMLで何を意味しますか?
printf("<tr><td>%s %s</td><td>%s</td></tr>n", ...
%記号が前に付いたprintfまたはsprintf文字はプレースホルダ(またはトークン)です。それらは引数として渡される変数に置き換えられます。
例:
$str1 = 'best';
$str2 = 'world';
$say = sprintf('Tivie is the %s in the %s!', $str1, $str2);
echo $say;
この意志出力:
Tivieは世界で最高です!
注:より多くのプレースホルダがあります(%sの文字列のため、12月の番号などの%dが...)
注文:
を渡す順序を議論は重要です。あなたは
$say = sprintf('Tivie is the %s in the %s!', $str2, $str1);
としての$ str2を持つ$ STR1を切り替える場合には、
"Tivieは最高の世界です!" 印刷します
ただし、このような引数の読み取り順序を変更することができます。
正しく文を印刷します$say = sprintf('Tivie is the %2$s in the %1$s!', $str2, $str1);
。
また、PHPは動的言語であり、明示的な型定義を必要としない(またはサポートする)ことを覚えておいてください。つまり、必要に応じて変数の種類を混乱させることになります。スプリントでは、数値プレースホルダ(%d)の引数として "文字列"を渡すと、その文字列が奇妙な結果を持つ数値(int、float ...)に変換されることを意味します。ここでは例です:
$onevar = 2;
$anothervar = 'pocket';
$say = sprintf('I have %d chocolate(s) in my %d.', $onevar, $anothervar);
echo $say;
これは私がPHPdocs
はprintf
において、%s
文字列に挿入されるデータのプレースホルダーです。 printf
の余分な引数は、挿入される値です。位置的にプレースホルダに関連付けられます。最初のプレースホルダは最初の値を取得し、2番目の値は2番目の値などを取得します。
で私は0
もっと読書中2チョコレート(複数可)を持っている
を出力します '+ 1 ' - ところで、これの正しい用語は文字列補間です。 –
明らかにCの 'printf'と同じ構文です。 –
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
出力:「ツリーには5つのサルがあります。」
編集してくれてありがとう、Ned。私は4回編集しましたが、それはまだ機能しませんでした。マークダウンはちょっと台無しになっているに違いない。 – David
これはもっと注意を必要とする超良い答えです。 –
PHPマニュアルから直接: –
%s
は、%s
の場合、貴重な値(文字列)に置き換えられる型指定子です。 - 引数を整数として扱い、(署名)進数として提示され
D:
は%s
のほかに、あなたは以下の通りです最も人気のある他のspecifiers、使用することができます。
f - 引数は浮動小数点として扱われ、浮動小数点数(ロケール 認識)として表されます。
s - 引数は、文字列として扱われ、文字列として表されます。
Nedの説明と一緒にあなたの例がかなり確かな答えをすると思います。質問:私が 'sprintf( 'Tivieは%s!、$ str2、$ str2に%sです)と書いて、' 'Tivieは最高の世界です! –
str2 = world、 – Tivie
、typo'sのために、 "Tivieは世界の世界です"と出力します。私はそれから笑いを得ました。したがって、 '%strn'は'%s [n] 'の値を返します。同じ記法で、 '%s%s'は'%s [0]%s [1] 'の値を返します。 –