日期:2014-05-17  浏览次数:20428 次

php中echo、print、print_r区别

概述:

三者均可以输出信息,但是各有自己的特点:

  类型 输出变量个数 输出变量类型 返回值 速度
echo 语言结构 一个或多个 简单类型变量,如int、string 最快
print 语言结构 一个 简单类型变量,如int、string int
print_r 函数 一个 复杂类型,如数组、对象 bool

echo不是一个函数,而是一个php语句,它可以使用逗号间隔输出多个变量,并且没有返回值,速度也是最快的。

<?php
	echo "xyw_", "Eliot", " Blog";		 //输出xyw_Eliot Blog
	echo ("xyw_", "Eliot", " Blog");	//编译错误,有括号不能传递多个参数
	$name = "xyw_Eliot";
	echo "$name is a blog!"	;	//输出xyw_Eliot is a blog!
	echo '$name is a blog!';	//输出$name is a blog!
	//双引号会对内部的变量进行解析,输出变量的内容;单引号不会对变量解析,而是原样输出
?>
print和echo的用法基本相同,但是print只能输出一个变量,并且有返回值,如果输出成功,返回1.

<?php
	print "xyw_Eliot is a blog!\n";		//输出xyw_Eliot is a blog!
	//print "xyw_Eliot ", "is a blog!";	//编译错误,print不能传递多个参数
	$return = print "xyw_Eliot is a blog!\n";	//打印成功,返回1
	echo $return;		//输出1
?>
print_r是一个函数,打印 关于变量的易于理解的信息。如果参数是 string、integer 或 float,将打印变量值本身。如果参数是 array,将会按照一定格式显示键和元素。object 与数组类似。

print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回要打印的变量,否则返回布尔值TRUE。 

<?php
	$arr = array("1"=>"xyw", "2"=>"Eliot", "3"=>"blog");
	print_r($arr);		//输出数组
	$return =print_r($arr);			//返回值为1
	echo $return;		//输出1
	$return =print_r($arr, true);	//返回数组
	echo $return;		//输出数组
?>
输出:

Array
(
    [1] => xyw
    [2] => Eliot
    [3] => blog
)

本文为Eliot原创,转载请注明出处:http://blog.csdn.net/xyw_blog/article/details/13743341