为什么PHP标记不允许在类内部,而允许在函数外部?

为什么PHP标记不允许在类内部,而允许在函数外部?,php,Php,是否有理由认为这是有效的PHP: <?php class someClass { function someFunction() { ?> <?php } } 换句话说,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