Webmonkey's PHP and MySql Tutorial、Lesson 2 を見ています。それはphpリテラルだと思います。_%s
_はどういう意味ですか?print_f()
の中にあります少なくとも最初の数ブロックのコードブロックでwhileループの関数。
_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、dec番号の%dなど)。
順序:
引数を渡す順序がカウントされます。 $ str1を$ str2で切り替えた場合
$say = sprintf('Tivie is the %s in the %s!', $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;
これは印刷されます
0に2つのチョコレートがあります。
PHPdocs でさらに読む
printf
で、%s
は、文字列に挿入されるデータのプレースホルダーです。 printf
への追加の引数は、挿入される値です。それらは、プレースホルダーに位置的に関連付けられます。最初のプレースホルダーは最初の値を取得し、2番目は2番目の値を取得します。
%s
は、%s
の場合に貴重な値(文字列)に置き換えられる型指定子です。
%s
の他に、他の 指定子 を使用できます。最も人気のあるものは以下のとおりです。
d-引数は整数として扱われ、(符号付き)10進数として表示されます。
f-引数は浮動小数点数として扱われ、浮動小数点数として提示されます(ロケール対応)。
s-引数は文字列として扱われ、表示されます。
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
「ツリーには5匹のサルがいます」と出力されます。
printf()
またはsprintf()
関数は、フォーマットされた文字列を変数に書き込みます。構文は次のとおりです。
_sprintf(format,arg1,arg2,arg++)
_
format:
arg1:
arg2:
arg ++:
例1:
_$number = 9;
$str = "New York";
$txt = sprintf("There are approximately %u million people in %s.",$number,$str);
echo $txt;
_
これは出力されます:
_
9
_にはおよそ_New York
_百万人がいます。
arg1、arg2、arg ++パラメーターはパーセント(% )メイン文字列にサインインします。この関数は「ステップバイステップ」で機能します。最初の%記号にarg1が挿入され、2番目の%記号にarg2が挿入されます。
注:引数よりも%記号が多い場合は、プレースホルダーを使用する必要があります。プレースホルダーは%記号の後に挿入され、引数番号と「\ $」で構成されます。別の例を見てみましょう:
例2
_$number = 123;
$txt = sprintf("With 2 decimals: %1\$.2f
<br>With no decimals: %1\$u",$number);
echo $txt;
_
これは出力されます:
小数2桁の場合:_
123.00
_
小数なし:_123
_
覚えておくべきもう1つの重要なヒントは、次のとおりです:
printf()
およびsprintf()
関数では、エスケープ文字はバックスラッシュ「\」ではなく「%」です。すなわち。 「%」文字を印刷するには、それ自体でエスケープする必要があります。
printf('%%%s%%', 'Nigeria Naira');
これは出力されます:
%ナイジェリアナイラ%
公式の PHPドキュメント を自由に探索してください