ホームページ  >  記事  >  バックエンド開発  >  PHPでのsprintf関数の詳しい使い方、sprintf関数の詳しい解説_PHPチュートリアル

PHPでのsprintf関数の詳しい使い方、sprintf関数の詳しい解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:14:041380ブラウズ

PHPでのsprintf関数の使い方を詳しく解説、sprintf関数の詳しい解説

この記事の例では、PHP での sprintf 関数の使用法を説明します。皆さんの参考に共有してください。具体的な使用状況分析は次のとおりです:

PHP の sprintf() 関数は、文字列を正式に整形して出力します。この記事では、sprintf() 関数を学習する際の経験を共有します。

PHP 関数 sprintf() 関数の正式な定義は次のとおりです: sprintf(): フォーマットされた文字列を変数に書き込みます

構文は次のとおりです: sprintf(format,arg1,arg2,arg++);

パラメータ:

形式: 必須、形式を変換します

arg1: 必須、フォーマット文字列の最初の%記号に挿入されるパラメータを指定します

arg1: オプション。フォーマット文字列の 2 番目の % 記号に挿入されるパラメータを指定します

arg1++: オプション。フォーマット文字列の 3 番目、4 番目などの % 記号に挿入されるパラメータを指定します

パラメータ形式の変換形式は、パーセント記号 (%) で始まり、変換文字で終わります。 可能な形式値は次のとおりです。

%% – パーセント記号を返します

%b – 2進数

%c – ASCII 値に基づく文字

%d – 符号付き 10 進数

%e – 連続カウント方法 (1.5e+3 など)

%u – 符号なし 10 進数

%f – 浮動小数点数 (ローカル設定を認識)

%F – 浮動小数点数 (ローカル設定は認識されません)

%o – 8 進数

%s – 文字列

%x – 16 進数 (小文字)

%X – 16 進数 (大文字)

ここにいくつかのデモがあります。コードは次のとおりです:

コードをコピーします コードは次のとおりです:
// 1. %%: %% を % に置き換えます
$str = 'パラメータ %% が何に置き換えられるかをテストします'; エコースプリント($str); //戻り結果: % パラメーターが何に置き換えられるかをテストします (%% は % に置き換えられます)

// 2. %b: このパラメータは整数データのみを置換できます。浮動小数点型の場合、整数部分のみが取得され、小数点以降のデータは無視されます。整数以外のデータの場合。 0を返す $str = 'パラメータ %b は 2 進数に置き換えられます'; $arg = '10'; エコー sprintf($str,$arg); //戻り結果: パラメータ 1010 は 2 進数に置き換えられます

$arg = 10.23; エコー sprintf($str,$arg); //戻り結果: パラメータ 1010 は 2 進数に置き換えられます
$arg = 'abc'; エコー sprintf($str,$arg); //戻り結果: パラメーター 0 は 2 進数に置き換えられます

// 3. %c は文字エンコーディングの ASCII コードを返します
$arg = 65; $str = "数値 {$arg} に対応する ASCII コードは %c です "; エコー sprintf($str,$arg); //戻り結果: 数字 65 に対応する ASCII コードは A です

// 4. %d は文字内の %d を int 型に置き換えます。 データ要件は $b と同じです
$str = 'ID 番号は %d です '; $arg = -3; エコー sprintf($str,$arg); //戻り結果: ID 番号は -3 です
$arg = 4.5; エコー sprintf($str,$arg); //戻り結果: ID 番号は 4 です
$arg = 'abc'; エコー sprintf($str,$arg); //戻り結果: ID 番号は 0 です

// 5. %s - 文字列

$str = "これはテストに使用した sprintf 文字列 (%s) です。今日は %f 元を使いました。鐘楼から小寨までは %d 駅あります。仕事に行きましょう
"; $arg = '%s'; エコー sprintf($str,$arg,6,5); //戻り結果: これはテストに使用される sprintf 文字列 (%s) です。今日は600万元使いました。鐘楼から小寨までは5駅です。仕事に行きましょう

他のパラメータについては、テストしてみてください。

この関数のいくつかの使用法について説明します。たとえば、データ テーブル内のすべてのデータの複数のフィールドを更新する場合、ループ更新を使用すると、非常にリソースが消費されます。ここでは sprintf() 関数を使用します。

データベースをバッチで更新する場合、通常は case then when end の構文を使用します。基本的な構文は次のとおりです。


コードをコピーします

コードは次のとおりです:

UPDATAテーブル
SET フィールド = CASE ID
WHEN 1 THEN 'value1'
WHEN 2 THEN 'value2'
WHEN 3 THEN 'value3'
終了
ID の場所 (1,2,3)

上記の意味は、テーブルを更新し、id = 1 の値を value1 に、id = 2 の値を value2 に、id = 3 の値を value3 に設定することです。このように、パラメーター上の関数は次のようになります。 SQL ステートメントをこのような SQL ステートメントに結合します。バッチ更新に使用できる SQL は 1 つだけです。


コードをコピーします

コードは次のとおりです:

//例えば、idに対応する値は以下の配列になります
$info = array(1=>'張三',2=>'李思',3=>'王呉'); $ids = implode(',',array_keys($info)) //すべてのID文字列を取得します
//結合SQL
$sql = "UPDATA ユーザー SET ユーザー名 = CASE ID"; foreach($info as $id=>$username){
$sql .= sprintf("WHEN %d THEN %s",$id,$username); }
$sql .= "END WHERE id IN ($ids)"; // $model->query($sql)


上記によりバッチ更新操作を完了でき、次の where 句により 3 行のデータのみが実行されるようになります。
この記事が皆さんの PHP プログラミング設計に役立つことを願っています。

http://www.bkjia.com/PHPjc/910604.html

www.bkjia.com

http://www.bkjia.com/PHPjc/910604.html技術記事 PHPのsprintf関数の使い方を詳しく解説、sprintf関数の詳しい解説 この記事ではPHPのsprintf関数の使い方を例を交えて解説しています。皆さんの参考に共有してください。具体的な使用法分析は次のとおりです: sprintf() 関数...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。