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
wiki-shan写的php在线加密的解密程序
Sep 07 PHP
php ci框架中加载css和js文件失败的解决方法
Mar 03 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
PHP基于数组实现的分页函数实例
Aug 20 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
CodeIgniter生成静态页的方法
May 17 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
PHP 实现文件压缩解压操作的方法
Jun 14 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
利用PHP实现短域名互转
2013/07/05 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
js玩一玩WSH吧
2007/02/23 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
原生js实现购物车
2020/09/23 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
python如何建立全零数组
2020/07/19 Python
python如何操作mysql
2020/08/17 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
大学生找工作推荐信范文
2013/11/28 职场文书
给老婆的检讨书
2015/01/27 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python