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读写分离
Jun 28 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
zend framework重定向方法小结
May 28 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
tp5 实现列表数据根据状态排序
Oct 18 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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入门教程之数学运算技巧总结
2016/09/11 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
一端时间轮换的广告
2006/06/26 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
JS功能代码集锦
2016/05/04 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
Vuex的热更替如何实现
2020/06/05 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Django中处理出错页面的方法
2015/07/15 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
python3中property使用方法详解
2019/04/23 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
HTML的form表单和django的form表单
2019/07/25 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
前台文员岗位职责及工作流程
2013/11/19 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
《三峡》教学反思
2014/03/01 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
热门专业求职信
2014/05/24 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python