为什么PHP标记不允许在类内部,而允许在函数外部?
是否有理由认为这是有效的PHP:为什么PHP标记不允许在类内部,而允许在函数外部?,php,Php,是否有理由认为这是有效的PHP: <?php class someClass { function someFunction() { ?> <?php } } 换句话说,PHP解析器可以在函数内部使用PHP开始/结束标记,但不是在类内部而是在函数外部,我想知道为什么。?>根据我对PHP的理解,当使用结束标记时,这会告诉PHP开始输出缓冲(准备输出数据)。定义类时,定义的是一组变量和/或函数,而不是输出数据。然而,当你在一个类中定义一个函数时,你基本上是在说-
<?php
class someClass {
function someFunction() {
?> <?php
}
}
换句话说,PHP解析器可以在函数内部使用PHP开始/结束标记,但不是在类内部而是在函数外部,我想知道为什么。
?>根据我对PHP的理解,当使用结束标记时,这会告诉PHP开始输出缓冲(准备输出数据)。定义类时,定义的是一组变量和/或函数,而不是输出数据。然而,当你在一个类中定义一个函数时,你基本上是在说-当这个函数被调用时,在这个函数中执行x个任务,可能包括输出数据。尽管如此,只是?>是的,理论上,?>作为旁白,?>
<?php
class someClass {
?> <?php
function someFunction() {
}
}
Parse error: parse error, expecting `"function (T_FUNCTION)"' in foo.php on line 4
<?php
echo 'foo';
?>bar<?php
echo 'baz';
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > ECHO 'foo'
3 1 ECHO 'bar'
4 2 ECHO 'baz'
3 > RETURN 1