当前位置: 代码迷 >> 综合 >> var_export, var_dump, print_r的区别和使用
  详细解决方案

var_export, var_dump, print_r的区别和使用

热度:75   发布时间:2023-12-09 11:20:20.0

1、var_export ( mixed $expression [, bool $return ] ) : mixed

此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
也就是说改函数返回的是合法的变量结构,可以赋值给其他变量使用。可用来生成PHP配置文件,一般以 return 开头的大数组。
例如Laravel57中生成配置文件缓存的操作:

$this->files->put(// $config 是一个数组,包含了所有的配置信息$configPath, '<?php return '.var_export($config, true).';'.PHP_EOL
);

您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

$a = array (1, 2, array ("a", "b", "c"));
$arr = var_export ($a, true);

2、var_dump ( mixed $expression [, mixed $… ] ) : void
打印变量的相关信息

3、print_r ( mixed $expression [, bool $return = FALSE ] ) : mixed
以人类易读的格式显示一个变量的信息。
当第二个参数为 TRUE,print_r() 会直接返回信息,而不是输出,返回string。
可用来记录复杂结构的日志信息。

print_r()、 var_dump()、 var_export() 都会显示对象 protected 和 private 的属性。 Class 的静态属性(static) 则不会显示。

示例

$a = array (1, 2, array ("a", "b", "c"));Log::info(var_export($a, true));
Log::info(print_r($a, true));

内容为:

array (0 => 1,1 => 2,2 =>array (0 => 'a',1 => 'b',2 => 'c',),
)Array
([0] => 1[1] => 2[2] => Array([0] => a[1] => b[2] => c))