有人可以告诉我为什么我不能写如下的课程
<?php
class Foo
{
?>
<?php
function bar() {
print "bar";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我认为它是一样的
<?php
class Foo
{
function bar() {
print "bar";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我想这是因为这个(引述的指令分离手册的部分):
PHP代码块的结束标记自动表示分号
这意味着你的代码:
<?php
class Foo
{
?>
<?php
function bar() {
print "bar";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
是相同的 :
<?php
class Foo
{;
function bar() {
print "bar";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这解释了你得到的错误:
Parse error: syntax error, unexpected ';', expecting T_FUNCTION
Run Code Online (Sandbox Code Playgroud)
编辑:想一想它,我认为这很奇怪,考虑到我经常在我的模板文件中使用这样的东西:
<?php if (...) : ?>
blah
blah
<?php endif ; ?>
Run Code Online (Sandbox Code Playgroud)
所以我尝试了这个:
<?php
if (true)
{
?>
<?php
echo "Hello, World!";
}
?>
Run Code Online (Sandbox Code Playgroud)
它完美无缺.好的......
现在,让我们尝试添加;,就像?>应该做的那样:
<?php
if (true)
{;
echo "Hello, World!";
}
?>
Run Code Online (Sandbox Code Playgroud)
这也很好,我得到以下输出:
Hello, World!
Run Code Online (Sandbox Code Playgroud)
并且,如果改变条件,只需确定:
<?php
if (false)
{;
echo "Hello, World!";
}
?>
Run Code Online (Sandbox Code Playgroud)
没有输出,也没有错误.
考虑到我之前引用的句子,这并不是那么令人惊讶......但是,无论如何,我仍感到惊讶^^
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |