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+MYSQL的文章管理系统(二)
Oct 09 PHP
PHP文本操作类
Nov 25 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
PHP Undefined index报错的修复方法
Jul 17 PHP
PHP生成数组再传给js的方法
Aug 07 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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文件操作实现代码分享
2011/09/01 PHP
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
python利用beautifulSoup实现爬虫
2014/09/29 Python
python通过ssh-powershell监控windows的方法
2015/06/02 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
pyqt5中动画的使用详解
2020/04/01 Python
python-地图可视化组件folium的操作
2020/12/14 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
校园标语大全
2014/06/19 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
个人授权委托书样本
2014/09/13 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
地雷战观后感
2015/06/09 职场文书
公司档案管理制度
2015/08/05 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
MySQL触发器的使用
2021/05/24 MySQL