务必注意如下:
开始:
<?php
$countwis = 21;
$ishper4 = 100;
$countwish4 = 128;
$countwishper4 = 666;
echo <<<EOF
</li> <li><span class="lb">其他:</span><span class="scale blue"><img src="images/vote_blue.gif" width=eval($countwishper4*2.35) height="8" /></span><span class="scalenum">{$countwish4}(({$countwishper4}%)</span></li> </ul>
EOF;
?>
run:
jackxiang@Tencent:~/php> /usr/local/php/bin/php eval.php
PHP Warning: Module 'sockets' already loaded in Unknown on line 0
</li> <li><span class="lb">其他:</span><span class="scale blue"><img src="images/vote_blue.gif" width=eval(666*2.35) height="8" /></span><span class="scalenum">128((666%)</span></li> </ul>
why:
width=eval(666*2.35)
我是想让php计算出来给width的,为什么???
<?
if(test case)
print<<<EOT
<....html code....>
EOF;
else
print<<<EOT
<....html code....>
EOF; //没有顶格写会报错:Parse error: syntax error, unexpected $end in
?>
如上写法是不可以的,需要把EOF标识符顶格:
<?
if(test case)
print<<<EOT
<....html code....>
EOF;
else
print<<<EOT
<....html code....>
EOF;
?>
补充上月票哥的:
<<<EOT,这个后面不能有空格
EOT;首先,要顶格,其次,分号后不能有空格。
定界符这个东西功能很强大,特别是在引用多行HTML代码的时候,方便了PHP的开发者,但其实他的使用很妖异【没装过PHP5.3,所以不知道新的有没有变化】
1、heredoc syntax 里面只能是文字,凡是涉及到的变量都会被解析
2、不要妄想在定界符内赋值、计算等,如果是变量的相乘,请在外面解析完了放进来。。。
3、大括号要注意着使用,无论如何,大括号内不要同时出现多个变量
4、定界符标志后面不能有任何空格,如 <<<EOT,EOT;,这两个符号后都不能有任何字符,EOT;就是占一行,谁也不能抢它
就想到这么多。以后想到再写
顺便说明一下,PHP的文件还是有规范的。。
例如
1、空文件,一般代码为<?php,如果就这样写,肯定报错,最少在<?php后面得加一个空格
2、文件结尾,上面说的定界符,就是一例,如果文件正好是EOT;结尾,后面又没有 ?> ,文件绝对报错,所以必须要在EOT;后再敲一个回车。。。。
妖啊。。实在是妖啊。。
彪哥的url:
http://www.neatcn.com/show-924-1.shtml
配对标记名的结尾标记名应单独一行,前后均不允许输出字符...(例如空格等不可见但存在的字符..)
开始:
<?php
$countwis = 21;
$ishper4 = 100;
$countwish4 = 128;
$countwishper4 = 666;
echo <<<EOF
</li> <li><span class="lb">其他:</span><span class="scale blue"><img src="images/vote_blue.gif" width=eval($countwishper4*2.35) height="8" /></span><span class="scalenum">{$countwish4}(({$countwishper4}%)</span></li> </ul>
EOF;
?>
run:
jackxiang@Tencent:~/php> /usr/local/php/bin/php eval.php
PHP Warning: Module 'sockets' already loaded in Unknown on line 0
</li> <li><span class="lb">其他:</span><span class="scale blue"><img src="images/vote_blue.gif" width=eval(666*2.35) height="8" /></span><span class="scalenum">128((666%)</span></li> </ul>
why:
width=eval(666*2.35)
我是想让php计算出来给width的,为什么???
<?
if(test case)
print<<<EOT
<....html code....>
EOF;
else
print<<<EOT
<....html code....>
EOF; //没有顶格写会报错:Parse error: syntax error, unexpected $end in
?>
如上写法是不可以的,需要把EOF标识符顶格:
<?
if(test case)
print<<<EOT
<....html code....>
EOF;
else
print<<<EOT
<....html code....>
EOF;
?>
补充上月票哥的:
<<<EOT,这个后面不能有空格
EOT;首先,要顶格,其次,分号后不能有空格。
定界符这个东西功能很强大,特别是在引用多行HTML代码的时候,方便了PHP的开发者,但其实他的使用很妖异【没装过PHP5.3,所以不知道新的有没有变化】
1、heredoc syntax 里面只能是文字,凡是涉及到的变量都会被解析
2、不要妄想在定界符内赋值、计算等,如果是变量的相乘,请在外面解析完了放进来。。。
3、大括号要注意着使用,无论如何,大括号内不要同时出现多个变量
4、定界符标志后面不能有任何空格,如 <<<EOT,EOT;,这两个符号后都不能有任何字符,EOT;就是占一行,谁也不能抢它
就想到这么多。以后想到再写
顺便说明一下,PHP的文件还是有规范的。。
例如
1、空文件,一般代码为<?php,如果就这样写,肯定报错,最少在<?php后面得加一个空格
2、文件结尾,上面说的定界符,就是一例,如果文件正好是EOT;结尾,后面又没有 ?> ,文件绝对报错,所以必须要在EOT;后再敲一个回车。。。。
妖啊。。实在是妖啊。。
彪哥的url:
http://www.neatcn.com/show-924-1.shtml
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2042/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2010-9-7 18:52
评论列表