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学习笔记之二 php入门知识
Jan 12 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
浅析Yii2缓存的使用
May 10 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
php微信开发之上传临时素材
Jun 24 PHP
php倒计时出现-0情况的解决方法
Jul 28 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
详解Laravel服务容器的优势
May 29 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中使用gettext来支持多语言的方法
2011/05/02 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
Python ljust rjust center输出
2008/09/06 Python
跟老齐学Python之永远强大的函数
2014/09/14 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python中标准模块importlib详解
2017/04/16 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
Pytorch转tflite方式
2020/05/25 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
中学门卫岗位职责
2013/12/26 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
银行给客户的感谢信
2015/01/23 职场文书
大学生团员个人总结
2015/02/14 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
鸦片战争观后感
2015/06/09 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js