编程中无意中发现,当使用“//”注释包含“?>”这样的字符串的时候,并不能把含有这个字符串的语句给注释掉!
测试代码:

<?
$a = 123;
$b = 456;
//echo "$a ?>";
echo $b;
?>

显示结果:
"; echo $b; ?>


得出的结论就是当遇到和前面“<?”相匹配的“?>”时,后面跟着的字符或者在遇到下个“<?”之前的字符都是按照html文本来对待!不过“"/* xxxxx */”这样的注释可以避免这个错误!


测试代码:

<?
$a = 123;
$b = 456;
/*echo "$a ?>";*/
echo $b;
?>

显示结果:
456

和结论一样!
首先发现这个结果的是伊泽浩,口头提出表扬一次!grin

Written on 2007/08/03 by 独自流浪 - Reads: 3613 Comments: 3
asd1 Homepage
[2007/08/21 03:30]
呵呵,这个发现可以避免一些不必要的php编码时的错误哦。。。 smile
Eventea Email Homepage
[2007/08/10 21:11]
//注释是从//到?>结束,?>以后的东西都不算做php,所以当作HTML显示出来了
习明
[2007/08/08 22:01]
“单行”注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。这意味着 // ?> 后面的 HTML 代码将被打印出来:?> 跳出了 PHP 模式并且返回 HTML 模式,而且 // 注释符并不会影响到模式的转换。

摘自PHP手册
分页: 1/1 第一页 1 最后页