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 引用文件技巧
Mar 02 PHP
简单的PHP留言本实例代码
May 09 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
php解决安全问题的方法实例
Sep 19 PHP
laravel model 两表联查示例
Oct 24 PHP
浅谈laravel aliases别名的原理
Oct 24 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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使用cookie实现记住登录状态
2015/04/27 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
php实现简易计算器
2020/08/28 PHP
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
js中创建对象的几种方式
2017/02/05 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
简单的三步vuex入门
2018/05/20 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
Python实现简单的四则运算计算器
2016/11/02 Python
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
教你怎样写好自我评价
2013/10/05 职场文书
音乐教学反思
2014/02/02 职场文书
加入学生会演讲稿
2014/04/24 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
先进个人材料怎么写
2014/12/30 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
幼儿园见习总结
2015/06/23 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python