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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
一篇入门的php Class 文章
Apr 04 PHP
php 获取可变函数参数的函数
Aug 26 PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
php显示时间常用方法小结
Jun 05 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
php 多文件上传的实现实例
Oct 23 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP中一个有趣的preg_replace函数详解
Aug 15 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
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
python实现删除文件与目录的方法
2014/11/10 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
党课培训心得体会
2014/09/02 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
婚礼父母答谢词
2015/01/04 职场文书
社团招新宣传语
2015/07/13 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
JavaScript实现简单计时器
2021/06/22 Javascript