1

我想知道下面的代码会发生什么:

<?php
function CountUp($count2, $count1)
{
    $count1(); // Say one
    $count2(); // Say two
}

CountUp(function() {
?>
    Two
<?php
}, function() {
?>
    One
<?
});

显然,PHP 为匿名函数创建了一个输出缓冲区,并在我们调用它们时刷新该缓冲区。

问题是:这是预期的 PHP 行为吗?我想在我的模板引擎中使用这个功能,所以它不能是hackish并且有不可预测的行为。

4

1 回答 1

1
<?php
function x() {
   echo 'x';
}
x();
?>

在功能上等同于

<?php function y() { ?>
y
<? } 
y();

?>

只有在调用函数时,两者才会输出它们的x和字符。y

于 2013-02-27T17:31:06.413 回答