php中 echo,print,print_r,var_export,var_dump 这些语句或者函数的作用可以笼统的概括为他们都是输出变量内容的。但他们之间还是有着很大的区别的,这里将一一分析 echo,print,print_f,var_export,var_dump 他们之间具体有着哪些不同之处。
echo 输出一个或者多个字符串或变量值,他是php语句,不是函数。因为他不是函数,所以他也是没有返回值的。例如:
echo $str,'world','hello!'; echo $str;
这里说明一下在php中有个函数何其单词非常相似,即each,each() 函数的作用是生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动。关于其具体用法,可查询 php 文档。
print print()用于输出一个或多个字符串或变量值的信息。它只能打印出简单类型变量的值(如int,string),不能打印数组和对象。他本质上也是一个语言结构而非函数,因此它无法被“变量函数”调用。print有返回值并且总是1。
注释:print() 稍慢于 echo()。
print_r print_r()是函数,用于打印关于变量的易于理解的信息。
print_r 函数原型:bool print_r ( mixed expression [, bool return] )
由上可见print_r返回值是布尔型的,参数是mix类型的,可以是字符串,整形,数组,对象类print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。
注释: 参数 return 是在 PHP 4.3.0 的时候加上的。记住,print_r() 对数组作用后将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。
如果想捕捉 print_r() 的输出,可使用 return 参数。若此参数设为 TRUE, print_r() 将不打印结果(此为默认动作),而是返回其输出。例如:
<?php $b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z')); $results = print_r ($b, true); //$results 包含了 print_r 的输出结果
var_export var_export()函数用于输出或返回一个变量的字符串表示。
var_export 函数原型:mixed var_export ( mixed $expression [, bool $return ] )
此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。你可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。例如:
<?php $a = array (1, 2, array ("a", "b", "c")); var_export ($a); /* 结果将输出: array ( 0 => 1, 1 => 2, 2 => array ( 0 => 'a', 1 => 'b', 2 => 'c', ), ) */ $b = 3.1; $v = var_export($b, TRUE); echo $v; /* 结果将输出: 3.1 */ ?>
var_dump var_dump()函数用于显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。它是直接将结果输出到浏览器的,如果需要将结果保存到一个string变量中,可使用输出控制函数来捕获当前函数的输出。使用如:
<?php $a = array(1, 2, array("a", "b", "c")); var_dump($a); $b = 3.1; $c = true; var_dump($b, $c); ?>
输出结果将为:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
float(3.1)
bool(true)