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

首頁(yè) > 語(yǔ)言 > PHP > 正文

PHP之sprintf函數(shù)用法詳解

2024-09-04 11:43:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章主要介紹了PHP中sprintf函數(shù)用法,以實(shí)例形式詳細(xì)分析了sprintf函數(shù)格式化輸出的常見(jiàn)用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了PHP中sprintf函數(shù)的用法。分享給大家供大家參考。具體用法分析如下:

sprintf()函數(shù)在php官方是說(shuō)把字符串格式化輸出了,本文就來(lái)給各位朋友介紹一下在學(xué)習(xí)sprintf()函數(shù)時(shí)的一些經(jīng)驗(yàn)分享,希望能給大家?guī)?lái)幫助.

PHP函數(shù) sprintf() 函數(shù)官方定義為:sprintf():把格式化的字符串寫(xiě)入一個(gè)變量中

語(yǔ)法為:sprintf(format,arg1,arg2,arg++);

參數(shù):

format:必須,轉(zhuǎn)換格式

arg1 :必須,規(guī)定插入 format 字符串中第一個(gè)%符號(hào)處的參數(shù)

arg1 :可選,規(guī)定插入 format 字符串中第二個(gè)%符號(hào)處的參數(shù)

arg1++:可選,規(guī)定插入 format 字符串中第三、四等%符號(hào)處的參數(shù)

參數(shù) format 的轉(zhuǎn)換格式,以百分比符號(hào)(%)開(kāi)始到轉(zhuǎn)換字符結(jié)束,下面是有可能的format值.

%% – 返回百分比符號(hào)

%b – 二進(jìn)制數(shù)

%c – 依照 ASCII 值的字符

%d – 帶符號(hào)十進(jìn)制數(shù)

%e – 可續(xù)計(jì)數(shù)法(比如 1.5e+3)

%u – 無(wú)符號(hào)十進(jìn)制數(shù)

%f – 浮點(diǎn)數(shù)(local settings aware)

%F – 浮點(diǎn)數(shù)(not local settings aware)

%o – 八進(jìn)制數(shù)

%s – 字符串

%x – 十六進(jìn)制數(shù)(小寫(xiě)字母)

%X – 十六進(jìn)制數(shù)(大寫(xiě)字母)

下面是一些demo,代碼如下:

  1. // 1. %% :把 %% 替換成 %  
  2. $str = '測(cè)試一下 %% 這個(gè)參數(shù),會(huì)被替換成什么';  
  3. echo sprintf($str);  
  4. //返回結(jié)果: 測(cè)試一下 % 這個(gè)參數(shù),會(huì)被替換成什么(%%被替換成一個(gè)%)  
  5. // 2. %b :該參數(shù)只能替換整型數(shù)據(jù),如果是浮點(diǎn)型,只會(huì)取整數(shù)部分,會(huì)忽略小數(shù)點(diǎn)后面的數(shù)據(jù)。如果是非整型數(shù)據(jù)。返回 0  
  6. $str = '參數(shù) %b 會(huì)替換成二進(jìn)制數(shù)';  
  7. $arg = '10';  
  8. echo sprintf($str,$arg);  
  9. //返回結(jié)果:參數(shù) 1010 會(huì)替換成二進(jìn)制數(shù)  
  10. $arg = 10.23;  
  11. echo sprintf($str,$arg);  
  12. //返回結(jié)果:參數(shù) 1010 會(huì)替換成二進(jìn)制數(shù)  
  13. $arg = 'abc';  
  14. echo sprintf($str,$arg);  
  15. //返回結(jié)果:參數(shù) 0 會(huì)替換成二進(jìn)制數(shù)  
  16.  
  17. // 3. %c 返回字符編碼的ASCII碼  
  18. $arg = 65;  
  19. $str =  "數(shù)字 {$arg} 對(duì)應(yīng)的ASCII碼為 %c ";  
  20. echo sprintf($str,$arg);  
  21. //返回結(jié)果:數(shù)字 65 對(duì)應(yīng)的ASCII碼為 A  
  22.  
  23. // 4. %d 將一段字符里的%d替換成int型,數(shù)據(jù)要求同 $b 相同  
  24. $str = 'ID號(hào)為 %d ';  
  25. $arg = -3;  
  26. echo sprintf($str,$arg);  
  27. //返回結(jié)果:ID號(hào)為 -3  
  28. $arg = 4.5;  
  29. echo sprintf($str,$arg);  
  30. //返回結(jié)果:ID號(hào)為 4  
  31. $arg = 'abc';  
  32. echo sprintf($str,$arg);  
  33. //返回結(jié)果:ID號(hào)為 0  
  34.  
  35. // 5. %s - 字符串  
  36. $str = "這是用來(lái)測(cè)試的sprintf的字符串( %s )。今天消費(fèi)了%f元。從鐘樓到小寨有%d站。上班";  
  37. $arg = '%s';  
  38. echo sprintf($str,$arg,6,5);  
  39. //返回結(jié)果:這是用來(lái)測(cè)試的sprintf的字符串( %s )。今天消費(fèi)了6.000000元。從鐘樓到小寨有5站。上班 

至于其它的參數(shù),大家可以試著測(cè)試一下.

下面說(shuō)一下這個(gè)函數(shù)的一些用途,比如我們?cè)趯?duì)一張數(shù)據(jù)表所有數(shù)據(jù)做多個(gè)字段更新時(shí),如果使用循環(huán)更新的話,那是很耗費(fèi)資源的,這里就要用到我們sprintf()函數(shù)了.

在數(shù)據(jù)庫(kù)批量更新時(shí),我一般采用 case then when end 的語(yǔ)法來(lái)做,基本語(yǔ)法如:

  1. UPDATA table  
  2.     SET field = CASE id  
  3.         WHEN 1 THEN 'value1'  
  4.         WHEN 2 THEN 'value2'  
  5.         WHEN 3 THEN 'value3'  
  6.     END  
  7. WHERE id IN (1,2,3) 

上面的意思就是說(shuō),更新 table 設(shè)置 id = 1 的值為 value1, id = 2 的值為 value2 ,id = 3 的值為 value3,這樣參數(shù)上面的函數(shù)將sql語(yǔ)句結(jié)合成這樣SQL語(yǔ)句,只需一條SQL就可以進(jìn)行批量更新,具體的方法為:

  1. //比如 id 對(duì)應(yīng)的值為以下數(shù)組  
  2. $info = array(1=>'張三',2=>'李四',3=>'王五');  
  3. $ids = implode(',',array_keys($info)) //獲取所有的ID字符串  
  4. //組合SQL  
  5. $sql = "UPDATA user SET username = CASE id";  
  6. foreach($info as $id=>$username){  
  7.      $sql .= sprintf("WHEN %d THEN %s",$id,$username);  
  8. }  
  9. $sql .= "END WHERE id IN ($ids)";  
  10. // $model->query($sql) 

上面就可以完成批量更新的操作,后面的 where子句確保只有3行數(shù)據(jù)執(zhí)行.

希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安福县| 南安市| 四平市| 和静县| 高阳县| 海林市| 云龙县| 怀仁县| 察雅县| 娄烦县| 邵武市| 福清市| 赤壁市| 蓝山县| 蓝山县| 松溪县| 天气| 和田市| 日土县| 微山县| 东辽县| 阿瓦提县| 阳高县| 泌阳县| 余姚市| 石嘴山市| 阿巴嘎旗| 盈江县| 周至县| 天柱县| 黄浦区| 揭阳市| 滕州市| 当阳市| 建始县| 滁州市| 随州市| 长宁区| 大新县| 青冈县| 韩城市|