2010年4月23日金曜日

printfで、引数を複数使ったり並び変えたりする際に$のエスケープが必要だった。

phpマニュアルに、printfで%s,%dなどに代入する引数の順番を変えたり、何度も代入したりできる便利な用法が載っていますが、エラーが出てうまく使えませんでした。 

$format 'The %2$s contains %1$d monkeys';printf($format$num$location);

結局問題は、""ダブルクオーテーションを使っていたので、その中で$記号をエスケープしていなかったことでした。
%1\$s,%2\$dなどとしてやると、無事順番入れ替えや同じ引数を複数回使ったりできました。
よかった。 

 ■追記:%1\$d と書くべきを、%\$1dと言う風に$を数字の前に書いてエラーも出てました。
 書き順注意。 

0 件のコメント:

コメントを投稿