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 相关文章推荐
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
PHP 写文本日志实现代码
May 18 PHP
计算php页面运行时间的函数介绍
Jul 01 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
PHP中使用Memache作为进程锁的操作类分享
Mar 30 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 PHP
PHP类和对象相关系统函数与运算符小结
Sep 28 PHP
PHP实现小偷程序实例
Oct 31 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
Js中sort()方法的用法
2006/11/04 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
Python单元和文档测试实例详解
2019/04/11 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
python excel多行合并的方法
2020/12/09 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
教师一岗双责责任书
2014/04/16 职场文书
大学三年计划书范文
2014/04/30 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL