echo 和 print

原创 2016年05月30日 22:30:42
<?php
print('ok');
echo 'ok';
?>
从表面看一个是函数一个是语句,PHP手册中也有这样的解释:echo() is not actually a function (it is a language construct)
那么,我们看看究竟会有什么具体的区别,看如下代码:
<?php
$tmp = print('ok');  //pass
$tmp = echo 'ok';    //parse error
?>
从这里我们可以看出print是带有返回值的,echo是不能有返回值的。我们继续追下去,看看为什么。从PHP中关于这两个的实现来分析。
print:
void zend_do_print(znode *result,const znode *arg TSRMLS_DC){
    zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); 
    opline->result.op_type = IS_TMP_VAR;
    opline->result.u.var = get_temporary_variable(CG(active_op_array));
    opline->opcode = ZEND_PRINT;
    opline->op1 = *arg;
    SET_UNUSED(opline->op2);
    *result = opline->result;
}
从标红的地方我们可以看到print有赋值出去,即有返回值。
再来看echo
void zend_do_echo(const znode *arg TSRMLS_DC) {
    zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); 
    opline->opcode = ZEND_ECHO;
    opline->op1 = *arg;
    SET_UNUSED(opline->op2);
}
我们可以发现echo里并没有赋值result的代码。从这里我们可以发现他们两者之间的区别


一般来说,PHP中动态输出HTML内容,是通过print 和 echo 语句来实现的,在实际使用中, print 和 echo 两者的功能几乎是完全一样。可以这么说,凡是有一个可以使用的地方,另一个也可以使用。但是,两者之间也还是一个非常重要的区别:在 echo 函数中,可以同时输出多个字符串,而在 print 函数中则只可以同时输出一个字符串。同时,echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。
echo 和 print 都不是函数,而是语言结构,所以圆括号都不是必需的。
他们的区别在于:
 print只能输出一个字符串,它可以表现得像一个函数,而echo可以实现多个字符串的输出,并且可以试想多个字符串的链接。另外,echo的效率相对比较快

分析总结:

echo    命令和print命令相同,没有区别  
echo    函数和print函数有区别。  
echo()    无返回值,与echo命令相同  
print()    有返回值,成功,返1,false,返0.    
printf()    和sprintf()类似,均为格式化输出,不同的是前者输出到标准输出,后者输出到变量 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PHP中echo和print的区别

一般来说,PHP中动态输出HTML内容,是通过print 和 echo 语句来实现的,在实际使用中, print 和 echo 两者的功能几乎是完全一样。可以这么说,凡是有一个可以使用的地方,另一个也...

PHP字符串函数之 sscanf echo print sprintf vsprintf printf vprintf fprintf vfprintf

PHP字符串函数之 sscanf echo print sprintf vsprintf printf vprintf fprintf vfprintf标签:PHP字符函数 PHP字符串输入输出 ...
  • letshi
  • letshi
  • 2016年01月15日 17:31
  • 421

PHP echo, print, printf, sprintf函数的区别和使用

1. echo函数:输出函数,是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"bold";2. print函数:是...

php学习之一(变量,作用域,echo,print)

PHP 是什么? PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。 PHP 脚本在服务器上执行。 PHP 可免费下载使用。 P...

PHP : echo和print的区别

字符串连接符:   //句号作为字符串连接符,echo中可以使用逗号作为连接符,但是                                                        ...

PHP Echo Vs Print

  Foreword: We have established that PHP is a web development language that can make developers a he...

php调试时echo,print_r(),var_dump()的区别

echo() 可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。 print() 函数...

echo print printf() sprintf()区别

echo print printf() sprintf()区别 printf sprintf的区别,当然,即便是最简单的Web网站都会想浏览器输出数据,PHP也提供了一系列输出信息的方法。1.prin...

PHP 5 echo 和 print 语句

PHP 5 echo 和 print 语句 在 PHP 中有两个基本的输出方式: echo 和 print。 本章节中我们会详细讨论两个语句的用法,并在实例中演示如何使用 echo...

8. PHP 5 echo 和 print 语句

在 PHP 中,有两种基本的输出方法:echo 和 print。PHP echo 和 print 语句echo 和 print 之间的差异:echo - 能够输出一个以上的字符串 print - 只能...
  • enlyhua
  • enlyhua
  • 2015年07月26日 21:40
  • 342
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:echo 和 print
举报原因:
原因补充:

(最多只允许输入30个字)