web-dev-qa-db-ja.com

PHP、HTML、またはXMLで%Sはどういう意味ですか?

Webmonkey's PHP and MySql Tutorial、Lesson 2 を見ています。それはphpリテラルだと思います。_%s_はどういう意味ですか?print_f()の中にあります少なくとも最初の数ブロックのコードブロックでwhileループの関数。

_printf("<tr><td>%s %s</td><td>%s</td></tr>n", ..._

32
Wolfpack'08

%記号が前に付く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 でさらに読む

44
Tivie

printfで、%sは、文字列に挿入されるデータのプレースホルダーです。 printfへの追加の引数は、挿入される値です。それらは、プレースホルダーに位置的に関連付けられます。最初のプレースホルダーは最初の値を取得し、2番目は2番目の値を取得します。

11
Ned Batchelder

%sは、%sの場合に貴重な値(文字列)に置き換えられる型指定子です。

%sの他に、他の 指定子 を使用できます。最も人気のあるものは以下のとおりです。

d-引数は整数として扱われ、(符号付き)10進数として表示されます。

f-引数は浮動小数点数として扱われ、浮動小数点数として提示されます(ロケール対応)。

s-引数は文字列として扱われ、表示されます。

5
rdo
$num = 5; 
$location = 'tree';

$format = 'There are %d monkeys in the %s'; 
echo sprintf($format, $num, $location); 

「ツリーには5匹のサルがいます」と出力されます。

1
David

printf()またはsprintf()関数は、フォーマットされた文字列を変数に書き込みます。構文は次のとおりです。

_sprintf(format,arg1,arg2,arg++)
_

format:

  • %%-パーセント記号を返します
  • %b-2進数
  • %c-ASCII値に従った文字
  • %d-符号付き10進数(負、ゼロ、または正)
  • %e-小文字を使用した科学表記法(例:1.2e + 2)
  • %E-大文字を使用した科学表記法(例:1.2E + 2)
  • %u-符号なし10進数(ゼロ以上)
  • %f-浮動小数点数(ローカル設定対応)
  • %F-浮動小数点数(ローカル設定を認識しません)
  • %g-%eと%fのうち短い方
  • %G-%Eと%fのうち短い方
  • %o-8進数
  • %s-文字列
  • %x-16進数(小文字)
  • %X-16進数(大文字)

arg1

  • フォーマット文字列の最初の%-signに挿入される引数(必須)。

arg2

  • フォーマット文字列の2番目の%-signに挿入される引数。 (オプション)

arg ++

  • 3番目、4番目などに挿入される引数。%-signフォーマット文字列(オプション)

例1:

_$number = 9;
$str = "New York";
$txt = sprintf("There are approximately %u million people in %s.",$number,$str);
echo $txt;
_

これは出力されます:

_9_にはおよそ_New York_百万人がいます。

arg1arg2arg ++パラメーターはパーセント(% )メイン文字列にサインインします。この関数は「ステップバイステップ」で機能します。最初の%記号に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ドキュメント を自由に探索してください

0
Emeka Augustine