PHPのsprintf関数の引数の番号付
という機能。
PHPのマニュアルに書いてあるのだけど、
どうも動かなかった。
動かないなぁ、変だけど、まぁいいや、
と使わないでいたが、原因が分かった。
教えてくれたのは、このページ。
要は、ダブルとシングルクオートの問題だった。
簡単に、下に3通りの例を(例題もほぼ上のページと同じ)
$format = "これは動く:%2\$s %3\$02d %1\$04d";
printf($format, $year, $month, $day);
$format = 'これも動く:%2$s %3$02d %1$04d';
printf($format, $year, $month, $day);
$format = "これは動かない:%2$s %3$02d %1$04d";
printf($format, $year, $month, $day);
なるほど、分かってみれば簡単なことだった。
「$」がPHPの変数と認識されちゃうことが原因だったわけですね。
0 件のコメント:
コメントを投稿