みなさん、こんばんはニコニコ

最近、あたたかかったり寒かったり
気温の変化がはげしいですね。。ショック!

体調を崩しやすいかと思いますので
風邪には十分にきおつけてくださいねビックリマーク

さて、今日はPHPの便利な関数sprintf関数を紹介したいと思いますキラキラ

sprintf関数(以下PHPマニュアルから抜粋)
------------------------------------------
フォーマットされた文字列を返す
------------------------------------------

spintf関数は文字列と変数を連結して長い文字列を作る際によく使ったりします音譜
(個人的に非常によく使っている関数ですニコニコ

言葉で説明するより具体的な使い方をみて
理解を深めて行きましょう!!

※プログラム上でSQL文を組み立てる場合を例にあげて
 説明していきたいと思います。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
・・・・
$name = "honda";
$age = 29;
$sql = "SELECT * FROM user WHERE name = '" . $name . "' AND age = " . $age . ";";
・・・・
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

上記のように、ドット連結を使ってSQL文を組み立てる方法がありますが
文字列と変数の間はダブルコーテーションで閉じて、、ドットを書いて、、
記載が結構ややこしいですよね。。ガーン

そんな時sprintf関数を使ってあげると
スッキリプログラムを記載することができちゃいますひらめき電球

例えば上記のプログラムをsprintf関数を使って記述し直した場合
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
・・・・
$name = "honda";
$age = 29;
$sql = sprintf("SELECT * FROM user WHERE name = '%s' AND age = %d;" ,$name, $age);
・・・・
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

まず、文字列に対して値を埋め込みたい箇所に文字列の場合は「%s
数字(10進数)の場合は「%d」(この他にも指定が色々できます)
と置き換えます。

そして、値を埋め込む実際の変数(または値)を2つ目以降の引数にを設定していきます。
※注意として上記の場合%s(名前) 、%d(年齢)という順番になっているので
 第2引数以降も同じ順番($name, $age)にて設定してあげる必要があります。

この他にも数字を指定の桁で0詰めする場合の時もよくつかったりしますキラキラ

試しに上記プログラムの$sqlを画面出力すると
「SELECT * FROM user WHERE name = 'honda' AND age = 29;」と出力されるはずですべーっだ!

みなさんも是非是非使ってみてくださいね音譜