php输出echo、print、print_r、printf、sprintf、var_dump的区别比较


Posted in PHP onJune 21, 2013

用.net开发已经5年了,最近突然想接触一下。net以外的东西,于是乎就来看看php了。在学习php中首先看看几个输出函数。
一、echo
echo() 实际上不是一个函数,是php语句,因此您无需对其使用括号。不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误。而且echo是返回void的,并不返回值,所以不能使用它来赋值。
例子:

<?php  
$a = echo("55nav"); // 错误!不能用来赋值  
echo "55nav"; // 55nav   
echo ("55nav"); // 55nav   
echo ("55nav","com"); //发生错误,有括号不能传递多个参数   
echo "55nav"," com"," is", " web";  // 不用括号的时候可以用逗号隔开多个值, 会输出 55nav com is web   
echo "55nav is  8 good  9 web.";  // 不管是否换行,最终显示都是为一行 55nav is good web.  
$fistname="55nav"; 
echo "$fistname com"; // 如果 $firstname = "55nav", 则会输出 55nav com.  
echo '$firstname com'; // 由于使用单引号,所以不会输出$firstname的值,而是输出 $firstname com 
?>

二、print
print() 和 echo() 用法一样,但是echo速度会比print快一点点。实际上它也不是一个函数,因此您无需对其使用括号。不过,如果您希望向print() 传递一个以上的参数,那么使用括号会发生解析错误。注意print总是返回1的,这个和echo不一样,也就是可以使用print来赋值,不过没有实际意义。
例子:
<?php 
$a = print("55nav"); // 这个是允许的  
echo $a; // $a的值是1 
?>

三、print_r 函数
print_r函数打印关于变量的易于理解的信息。
语法:mixed print_r ( mixed $expression [, bool return ] )
如果变量是string , integer or float , 将会直接输出其值,如果变量是一个数组,则会输出一个格式化后的数组,便于阅读,也就是有key和value对应的那种格式。对于object对象类同。print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值TRUE。
例子:
<?php 
 $a="55nav"; 
 $c = print_r($a);  
 echo $c;  // $c的值是TRUE  
 $c = print_r($a,true);  
 echo $c; // $c的值是字符串55nav  
 ?>

四、printf函数
printf函数返回一个格式化后的字符串。
语法:printf(format,arg1,arg2,arg++)
参数 format 是转换的格式,以百分比符号 (“%”) 开始到转换字符结束。下面是可能的 format 值:
* %% ? 返回百分比符号
* %b ? 二进制数
* %c ? 依照 ASCII 值的字符
* %d ? 带符号十进制数
* %e ? 可续计数法(比如 1.5e+3)
* %u ? 无符号十进制数
* %f ? 浮点数(local settings aware)
* %F ? 浮点数(not local settings aware)
* %o ? 八进制数
* %s ? 字符串
* %x ? 十六进制数(小写字母)
* %X ? 十六进制数(大写字母)
arg1, arg2, arg++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的,在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 “\$” 组成。可使用数字指定显示的参数,详情请看例子。
例子:
<?php 
printf("My name is %s %s。","55nav", "com"); // My name is 55nav com。 
printf("My name is %1\$s %1\$s","55nav", "com"); // 在s前添加1\$或2\$.....表示后面的参数显示的位置,此行输出 My name is 55nav 55nav因为只显示第一个参数两次。 
printf("My name is %2\$s %1\$s","55nav", "com"); // My name is com 55nav  
?>

五、sprintf函数
此函数使用方法和printf一样,唯一不同的就是该函数把格式化的字符串写写入一个变量中,而不是输出来。
例子:
<?php 
sprintf("My name is %1\$s %1\$s","55nav", "com");  //你会发现没有任何东西输出的。  
$out = sprintf("My name is %1\$s %2\$s","55nav", "com");  
echo $out;  //输出 My name is 55nav com  
?>

六、var_dump函数
功能: 输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。
<?php 
$a=100; 
var_dump($a); //int(100) 
$a=100.356; 
var_dump($a); //float(100.356) 
?>

PHP 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
phpmyadmin 3.4 空密码登录的实现方法
May 29 PHP
php flv视频时间获取函数
Jun 29 PHP
PHPCMS的使用小结
Sep 20 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
Jan 10 PHP
PHP防止跨域提交表单
Nov 01 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
Function eregi is deprecated (解决方法)
Jun 21 #PHP
解析php中获取url与物理路径的总结
Jun 21 #PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 #PHP
深入理解PHP中的Session和Cookie
Jun 21 #PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 #PHP
解析PHP中一些可能会被忽略的问题
Jun 21 #PHP
关于PHP堆栈与列队的学习
Jun 21 #PHP
You might like
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
php上传图片类及用法示例
2016/05/11 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
python实现贪吃蛇游戏
2020/03/21 Python
Pytorch之parameters的使用
2019/12/31 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
利用python实现汉诺塔游戏
2021/03/01 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
几个常见的软件测试问题
2016/09/07 面试题
加拿大留学自荐信
2014/01/28 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书