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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
文件系统基本操作类
Nov 23 PHP
逐步提升php框架的性能
Jan 10 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
php加密解密实用类分享
Jan 07 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
php修改指定文件后缀的方法
Sep 11 PHP
PHP中预定义的6种接口介绍
May 12 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 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
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
JavaScript中的其他对象
2008/01/16 Javascript
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
Python实现简单拆分PDF文件的方法
2015/07/30 Python
Python探索之SocketServer详解
2017/10/28 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python isinstance函数用法详解
2020/02/13 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
捷科时代的软件测试笔试题
2015/11/09 面试题
UNIX特点都有哪些
2016/04/05 面试题
教师开学感言
2014/02/14 职场文书
青春演讲稿范文
2014/05/08 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
三年级学生评语大全
2014/12/26 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
服务行业标语口号
2015/12/26 职场文书
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS