国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP之sprintf函數用法詳解

2020-03-22 20:17:03
字體:
來源:轉載
供稿:網友
本文實例講述了PHP中sprintf函數的用法。分享給大家供大家參考。具體用法分析如下:sprintf()函數在php官方是說把字符串格式化輸出了,本文就來給各位朋友介紹一下在學習sprintf()函數時的一些經驗分享,希望能給大家帶來幫助.html' target='_blank'>PHP函數 sprintf() 函數官方定義為:sprintf():把格式化的字符串寫入一個變量中語法為:sprintf(format,arg1,arg2,arg++);參數:format:必須,轉換格式arg1 :必須,規定插入 format 字符串中第一個%符號處的參數arg1 :可選,規定插入 format 字符串中第二個%符號處的參數arg1++:可選,規定插入 format 字符串中第三、四等%符號處的參數參數 format 的轉換格式,以百分比符號(%)開始到轉換字符結束,下面是有可能的format值.%% – 返回百分比符號%b – 二進制數%c – 依照 ASCII 值的字符%d – 帶符號十進制數%e – 可續計數法(比如 1.5e+3)%u – 無符號十進制數%f – 浮點數(local settings aware)%F – 浮點數(not local settings aware)%o – 八進制數%s – 字符串%x – 十六進制數(小寫字母)%X – 十六進制數(大寫字母)下面是一些demo,代碼如下:
復制代碼 代碼如下:// 1. %% :把 %% 替換成 %
$str = '測試一下 %% 這個參數,會被替換成什么';
echo sprintf($str);
//返回結果: 測試一下 % 這個參數,會被替換成什么(%%被替換成一個%)// 2. %b :該參數只能替換整型數據,如果是浮點型,只會取整數部分,會忽略小數點后面的數據。如果是非整型數據。返回 0
$str = '參數 %b 會替換成二進制數';
$arg = '10';
echo sprintf($str,$arg);
//返回結果:參數 1010 會替換成二進制數
$arg = 10.23;
echo sprintf($str,$arg);
//返回結果:參數 1010 會替換成二進制數
$arg = 'abc';
echo sprintf($str,$arg);
//返回結果:參數 0 會替換成二進制數// 3. %c 返回字符編碼的ASCII碼
$arg = 65;
$str = "數字 {$arg} 對應的ASCII碼為 %c ";
echo sprintf($str,$arg);
//返回結果:數字 65 對應的ASCII碼為 A

// 4. %d 將一段字符里的%d替換成int型,數據要求同 $b 相同
$str = 'ID號為 %d ';
$arg = -3;
echo sprintf($str,$arg);
//返回結果:ID號為 -3
$arg = 4.5;
echo sprintf($str,$arg);
//返回結果:ID號為 4
$arg = 'abc';
echo sprintf($str,$arg);
//返回結果:ID號為 0

// 5. %s - 字符串
$str = "這是用來測試的sprintf的字符串( %s )。今天消費了%f元。從鐘樓到小寨有%d站。上班";
$arg = '%s';
echo sprintf($str,$arg,6,5);
//返回結果:這是用來測試的sprintf的字符串( %s )。今天消費了6.000000元。從鐘樓到小寨有5站。上班
至于其它的參數,大家可以試著測試一下.下面說一下這個函數的一些用途,比如我們在對一張數據表所有數據做多個字段更新時,如果使用循環更新的話,那是很耗費資源的,這里就要用到我們sprintf()函數了.在數據庫批量更新時,我一般采用 case then when end 的語法來做,基本語法如:
復制代碼 代碼如下:UPDATA table
SET field = CASE id
WHEN 1 THEN 'value1'
WHEN 2 THEN 'value2'
WHEN 3 THEN 'value3'
END
WHERE id IN (1,2,3)
上面的意思就是說,更新 table 設置 id = 1 的值為 value1, id = 2 的值為 value2 ,id = 3 的值為 value3,這樣參數上面的函數將sql語句結合成這樣SQL語句,只需一條SQL就可以進行批量更新,具體的方法為:
復制代碼 代碼如下://比如 id 對應的值為以下數組
$info = array(1= '張三',2= '李四',3= '王五');
$ids = implode(',',array_keys($info)) //獲取所有的ID字符串
//組合SQL
$sql = "UPDATA user SET username = 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程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会理县| 寻甸| 五台县| 禹州市| 华容县| 建宁县| 拜泉县| 陇南市| 德州市| 安丘市| 托克托县| 沛县| 无棣县| 临桂县| 邯郸市| 西和县| 寿宁县| 镶黄旗| 揭东县| 西乌珠穆沁旗| 内乡县| 宁国市| 民勤县| 高淳县| 义乌市| 揭阳市| 大渡口区| 睢宁县| 蚌埠市| 勃利县| 义乌市| 绥芬河市| 定兴县| 黄陵县| 宜州市| 镇原县| 渝北区| 安新县| 丰台区| 鄱阳县| 上思县|