当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP 定界符 使用技巧

PHP 定界符 使用技巧

2019年05月07日  | 移动技术网IT编程  | 我要评论
如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是php为什么要引入一个定界符的原因——至少一大部分原因是这样的。
1.php定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
2.在php定界符中的任何特殊字符都不需要转义;
3.php定界符中的php变量会被正常的用其值来替换。
php中的定界符格式是这样的:
复制代码 代码如下:

<<<eof
……
eof;

看起来很简单,但是其中有许多地方需要注意。
首先在<<<之后的字符eof是自己定义的,随便什么都是可以的(比如aaa都可以),但是结尾处的字符一定要和他一样,他们是成对出现的,就像{}这样的——这是最基本的。
在php定界符使用的过程中,第二个需要注意的问题——也是最经常出现问题的地方:
结尾的一行(如上例的eof;),一定要另起一行,并且改行除了eof;这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出现空格,制表符的话,你会收到一个这样的错误信息:
parse error: parse error, unexpected $end in……,提示你语法错误;
第三个需要注意的是,如果在定界符中间出现有php的变量,你只需要像在其它字符串中输出一样写就行了,例如
复制代码 代码如下:

<<<eof
hello{$name}
eof;

变量$name之所以要用{}括起来是要告诉php解析器这是一个php变量,其实不用也是可以的,但是有可能会产生歧义,例如你的变量后面刚好不是一字母或者特殊符号什么的会怎么样呢?千万不能有这样的写法
复制代码 代码如下:

<<<eof
hello<?php echo $name?>
eof;

这样的情况,你同样会收到一个语法错误的信息。先便是一个战地测试过的php定界符的正确写法。里面包含了,html和javascript的代码:
复制代码 代码如下:

<?php
$name = 'kitty';
echo <<<eof
<table height="20">
<tr><td>
{$name}<br/>
<script>
var p='hello world';
document.writeln(p);
</script>
</td></tr>
</table>
eof;
?>

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网