PHP echo,print,printf,sprintf函数之间的区别与用法详解


Posted in PHP onNovember 27, 2013

1. echo函数:

输出函数,是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开,如:
echo $myvar1;
echo 1,2,$myvar,"<b>bold</b>";

2. print函数:

是函数,可以返回一个值,只能有一个参数。

int print ( string arg )

Outputs arg . Returns 1 , always.

3. printf函数:

int printf ( string format [, mixed args [, mixed ...]] )

Produces output according to format , which is described in the documentation for sprintf() .

Returns the length of the outputted string.

把文字格式化以后输出,如:
$name="hunte";
$age=25;
printf("my name is %s, age %d", $name, $age);

4. sprintf函数:
string sprintf ( string format [, mixed args [, mixed ...]] )

Returns a string produced according to the formatting string format .

跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。

5. 详细讲解printf()函数:

printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);

%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法

说明:

(1). 可以在"%"和字母之间插进数字表示最大场宽。

 ①例如: %3d 表示输出3位整型数, 不够3位右对齐。

 ②%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。

 ③%8s 表示输出8个字符的字符串, 不够8个字符右对齐。

 ④如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

 ⑤浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;

 ⑥小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。

 ⑦若想在输出值前加一些0, 就应在场宽项前加个0。

例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。

  ⑧如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。

例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。

(2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

   ①例如: %ld 表示输出long整数

   ②%lf 表示输出double浮点数

(3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。

①例如: %-7d 表示输出7位整数左对齐

②%-10s 表示输出10个字符左对齐

(4). 一些特殊规定字符

    ①/n 换行

②/f 清屏并换页

③/r 回车

④/t Tab符

⑤/xhh 表示一个ASCII码用16进表示,

⑥其中hh是1到2个16进制数

6. printf() : examples

例1: various examples

<?php  
$n =  43951789;  
$u = -43951789;  
$c = 65; // ASCII 65 is 'A'  // notice the double %%, this prints a literal '%' character  
printf("%%b = '%b'/n", $n); // binary representation  
printf("%%c = '%c'/n", $c); // print the ascii character, same as chr() function  
printf("%%d = '%d'/n", $n); // standard integer representation  
printf("%%e = '%e'/n", $n); // scientific notation  
printf("%%u = '%u'/n", $n); // unsigned integer representation of a positive integer  
printf("%%u = '%u'/n", $u); // unsigned integer representation of a negative integer  
printf("%%f = '%f'/n", $n); // floating point representation  
printf("%%o = '%o'/n", $n); // octal representation  
printf("%%s = '%s'/n", $n); // string representation  
printf("%%x = '%x'/n", $n); // hexadecimal representation (lower-case)  
printf("%%X = '%X'/n", $n); // hexadecimal representation (upper-case)  
printf("%%+d = '%+d'/n", $n); // sign specifier on a positive integer  
printf("%%+d = '%+d'/n", $u); // sign specifier on a negative integer  
?>   
  
The printout of this program would be:   
%b = '10100111101010011010101101'  
%c = 'A'  
%d = '43951789'  
%e = '4.39518e+7'  
%u = '43951789'  
%u = '4251015507'  
%f = '43951789.000000'  
%o = '247523255'  
%s = '43951789'  
%x = '29ea6ad'  
%X = '29EA6AD'  
%+d = '+43951789'  
%+d = '-43951789'

例2: string specifiers
<?php  
$s = 'monkey';  
$t = 'many monkeys';  printf("[%s]/n",      $s); // standard string output  
printf("[%10s]/n",    $s); // right-justification with spaces  
printf("[%-10s]/n",   $s); // left-justification with spaces  
printf("[%010s]/n",   $s); // zero-padding works on strings too  
printf("[%'#10s]/n",  $s); // use the custom padding character '#'  
printf("[%10.10s]/n", $t); // left-justification but with a cutoff of 10 characters  
?>   
The printout of this program would be:   
[monkey]  
[    monkey]  
[monkey    ]  
[0000monkey]  
[####monkey]  
[many monke]

例3:zero-padded integers
<?php  
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);  
?> 

例4:formatting currency
<?php  
$money1 = 68.75;  
$money2 = 54.35;  
$money = $money1 + $money2;  
// echo $money will output "123.1";  
$formatted = sprintf("%01.2f", $money);  
// echo $formatted will output "123.10"  
?>

例5: sprintf() : scientific notation
<?php  
$number = 362525200;  echo sprintf("%.3e", $number); // outputs 3.63e+8  
?> 
PHP 相关文章推荐
php仿discuz分页效果代码
Oct 02 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
初识PHP
Sep 28 PHP
php中smarty区域循环的方法
Jun 11 PHP
PHP自毁程序(慎用)
Jul 09 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
php strnatcmp()函数的用法总结
Nov 27 #PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 #PHP
php对二维数组按指定键值key排序示例代码
Nov 26 #PHP
PHP上传文件时文件过大$_FILES为空的解决方法
Nov 26 #PHP
PHP获取当前url的具体方法全面解析
Nov 26 #PHP
php 批量替换html标签的实例代码
Nov 26 #PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 #PHP
You might like
小文件php+SQLite存储方案
2010/09/04 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
php后门URL的防范
2013/11/12 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
分享Python文本生成二维码实例
2016/01/06 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
金融事务专业求职信
2014/04/25 职场文书
无故旷工检讨书
2015/08/15 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android