关于php:PHP中的输出echoprintprintfsprintfprintr和vardump

37次阅读

共计 1766 个字符,预计需要花费 5 分钟才能阅读完成。

大家在面试中,常常会被问到的问题:

请简要阐明 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',
    )
*/

===============

关注公众号:【硬核项目经理】获取最新文章

增加微信 /QQ 好友:【xiaoyuezigonggong/149844827】收费得 PHP、项目管理学习材料

知乎、公众号、抖音、头条搜寻【硬核项目经理】

B 站 ID:482780532

正文完
 0