PHP 教程 在线

569PHP EOF(heredoc)

补充一下上一个笔记的内容,EOF 中是会解析 html 格式内容的,并且在双引号内的内容也有转义效果。

具体见下面例子:

<?php
$name="变量会被解析";
$a=<<<EOF
$name<br><a>html格式会被解析</a><br/>双引号和Html格式外的其他内容都不会被解析
"双引号外所有被排列好的格式都会被保留"
"但是双引号内会保留转义符的转义效果,比如table:\t和换行:\n下一行"
EOF;
echo $a;
?>  

568PHP EOF(heredoc)

  • 1.PHP 定界符 EOF 的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
  • 2.在 PHP 定界符 EOF 中的任何特殊字符都不需要转义;
  • 3.PHP 定界符 EOF

567PHP echo/print

echo 是语法结构,也就是关键字,不是函数。使用的时候不用加括号,加上也可以。显示多个值的时候可以用逗号隔开。只支持基本类型,布尔型除外,echo true的时候显示1,echo false的时候啥都没有。

print 和 echo 基本一致。但是print 不支持逗号分隔多个显示变量的语法。

print_r 是函数,不仅可以打印变量的的值,还能显示变量类型,而且也可以显示数组和对象这样复杂的变量类型。print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

两者相同点:

  • echo 和 print 都是语言结构(官方文档解释为language construct);
  • echo 和 print 都是用来输出字符串的;
  • 当同时只有一个参数的时候,echo 和 print 后面的括号(parenthesis)都是可选的,即:echo ($argument1) 等价于 echo $argument1,print(argument)等价于print argument;
  • echo 和 print 在输出之前,都会将参数的进行转换,尝试转换为字符串类型。

两者的区别

  • echo能接受N个字符串类型的参数(注意:有多个参数的时候,不能使用括号,即echo $arg1,$arg2是正确的,echo($arg1,$arg2)会导致解析错误); print只能接收1个字符串类型的参数;
  • echo没有返回值; print有返回值,其值永远为int类型的1。
  • 在这里引用PHP官方原文档的说明 : "The major differences to echo are that print only accepts a single argument and always returns 1."

566PHP echo/print

$a = 9;

print $aprint "$a" 效果相同,echo 同理。

print "text$a text"print "text $a text"print "text{$a}text" 都可以正常显示 $a 的值,不使用 {}&a 之后必须有一个空格,不然就无法识别变量("text$atext" 会识别为变量 $atextecho 同理。

565PHP echo/print

echo 和 print语句的区别

1、echo 可以输出一个或多个字符串;

2、print 只允许输出一个字符串,返回值总为 1;

3、echo 输出的速度比 print 快;

4、echo 没有返回值,print 有返回值 1;