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 相关文章推荐
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
php 无限级数据JSON格式及JS解析
Jul 17 PHP
php简单提示框alert封装函数
Aug 08 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
Oct 09 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
php程序之die调试法 快速解决错误
2009/09/17 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
js实现ArrayList功能附实例代码
2014/10/29 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
Python实现图片拼接的代码
2018/07/02 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
python之生产者消费者模型实现详解
2019/07/27 Python
Django继承自带user表并重写的例子
2019/11/18 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
2014全国两会学习心得体会2000字
2014/03/10 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
黑白记忆观后感
2015/06/18 职场文书
运动会加油稿30字
2015/07/21 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
Python实现老照片修复之上色小技巧
2021/10/16 Python
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python