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 相关文章推荐
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
基于php和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
PHP文件缓存类示例分享
Jan 30 PHP
学习php设计模式 php实现享元模式(flyweight)
Dec 07 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 PHP
在laravel中使用with实现动态添加where条件
Oct 10 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
做个自己站内搜索引擎
2006/10/09 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
Python中的默认参数实例分析
2018/01/29 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
群众路线教育实践活动心得体会
2014/03/07 职场文书
合作协议书怎么写
2014/04/18 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
淘宝活动总结范文
2014/06/26 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
水电工岗位职责
2015/02/14 职场文书
党支部工作总结2015
2015/04/01 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
运动员加油词
2015/07/18 职场文书
学生会部长竞选稿
2015/11/19 职场文书
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
Python类方法总结讲解
2021/07/26 Python
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python