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 相关文章推荐
文件上传的实现
Oct 09 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
php URL跳转代码 减少外链
Jun 25 PHP
php实现的日历程序
Jun 18 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 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
PHP4 与 MySQL 交互使用
2006/10/09 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
IIS下PHP的三种配置方式对比
2014/11/20 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
python实现简单中文词频统计示例
2017/11/08 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
基于python操作ES实例详解
2019/11/16 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
销售类求职信
2014/06/13 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
水电施工员岗位职责
2015/04/11 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
新学期主题班会
2015/08/17 职场文书