PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码


Posted in PHP onDecember 01, 2020

大家在面试中,经常会被问到的问题:

请简要说明PHP的打印方式都有哪些?

或者直接点问:

请说明echo、print、print_r的区别

看着很简单,一般会出现在初中级的笔试题中。但是要真正说明白这些语言结构或者函数也不是那么简单的事情。今天我们就来好好看看这些打印输出相关的内容。

echo

最基础的输出语句,不是函数是语言结构,不需要括号。可以使用参数列表,用逗号分隔。但如果加了括号就不能用逗号分隔着输出了。没有返回值。

echo 'fullstackpm'; // 正常输出:fullstackpm
echo 'fullstackpm', ' is ', 'Good!'; // 正常输出:fullstackpm is Good!
echo ('fullstackpm'); // 正常输出:fullstackpm
echo ('fullstackpm', ' is ', 'Good!'); // 报错了

print

基本和echo一样,但是不支持参数列表,有返回值。返回值永远是1。

因为有返回值,所以相对来说效率不如echo

print 'fullstackpm'; // 正常输出:fullstackpm
print 'fullstackpm', ' is ', 'Good!'; // 错误
$r = print ('fullstackpm'); // 正常输出:fullstackpm
print $r; // 输出1

printf和sprintf

两个很高大上的函数,可以格式化输出字符串。用%标明占位符,后面的参数对应进行占位符的替换。printf和sprintf的区别就是前者直接进行了输出,而后者是将字符串进行了函数返回。请看实例。

$str = 'My name is %s, I\'m %d years old.';
printf($str, 'fullstackpm', 1002); // 直接输出:My name is fullstackpm, I'm 1002 years old.

$s = sprintf($str, 'WoW', 12); // 这里不会输出
print $s; // 输出:My name is WoW, I'm 12 years old.

你最少要记住的,%s代表字符串,%d代表数字,%f是浮点数,%%是输出%本身,其他还有许多类型可以查看相关文档。另外还有类似的几个:

  • vprintf,他的第二个参数是一个数组,不是可变长度的参数。
  • sscanf,对于一些特殊字符处理方式不同。
  • fscanf,从文档中读取并进行格式化。

print_r

非常常用的一个函数,可以格式化的输出数组或对象。注意第二个参数设置为true,可以不直接输出而是进行函数返回。

$str = [
  "a",
  1 => "b",
  "3" => "c",
  "show"=>'d'
];

print_r($str)
// 输出
/**
  Array
  (
    [0] => a
    [1] => b
    [3] => c
    [show] => d
  )
*/

$s = print_r($str, true); // 此处不会输出
echo $s;
// 输出
// 注意,输出流不在ob_start()中,测试本段请不要有其他任何输出
/**
  Array
  (
    [0] => a
    [1] => b
    [3] => c
    [show] => d
  )
*/

var_dump和var_exports

var_dump也是非常常用的一个函数,用来显示结构信息,包括类型与值,数组对象都会展开,用缩进表示层次。var_exports与之不同的地方在于var_exports返回的内容是正常的PHP代码,可以直接使用,并且有和print_r类似的第二个return参数,作用也类似。

$str = [
  "a",
  1 => "b",
  "3" => "c",
  "show"=>'d'
];

var_dump($str);
// 输出
/**
  array(4) {
   [0] =>
   string(1) "a"
   [1] =>
   string(1) "b"
   [3] =>
   string(1) "c"
   'show' =>
   string(1) "d"
  }
*/

var_export($str);
// 输出
/**
  array (
   0 => 'a',
   1 => 'b',
   3 => 'c',
   'show' => 'd',
  )
*/

到此这篇关于PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码的文章就介绍到这了,更多相关PHP输出echo、print、printf、sprintf、print_r和var_dump内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP安装问题
Oct 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
php相当简单的分页类
Oct 02 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
php伪静态之APACHE篇
Jun 02 PHP
php实现的zip文件内容比较类
Sep 24 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
PHP抽象类与接口的区别实例详解
May 09 PHP
php如何实现数据库的备份和恢复
Nov 30 #PHP
php实现简单四则运算器
Nov 29 #PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 #PHP
php实现JWT验证的实例教程
Nov 26 #PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 #PHP
PHP扩展安装方法步骤解析
Nov 24 #PHP
Cookie跨域问题解决方案代码示例
Nov 24 #PHP
You might like
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
JavaScript常用数学函数用法示例
2018/05/14 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
使用Python读取大文件的方法
2018/02/11 Python
python中while和for的区别总结
2019/06/28 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
python如何控制进程或者线程的个数
2020/10/16 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
入党思想汇报
2014/01/05 职场文书
《大海那边》教学反思
2014/04/09 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
PHP新手指南
2021/04/01 PHP
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL