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 02 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
php 字符串替换的方法
Jan 10 PHP
2款PHP无限级分类实例代码
Nov 11 PHP
基于PHP如何把汉字转化为拼音
Dec 11 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
PHP+swoole实现简单多人在线聊天群发
Jan 19 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP实现发送微博消息功能完整示例
Dec 04 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 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
php4的session功能评述(三)
2006/10/09 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
理解JavaScript原型链
2016/10/25 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python3几个常见问题的处理方法
2019/02/26 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
python通过链接抓取网站详解
2019/11/20 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
工作表现自我评价
2014/02/08 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
医学生自荐信范文
2015/03/05 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL