【发布时间】:2011-03-14 03:32:21
【问题描述】:
我一直在为 PHP 5.3 编写一些代码,我想做一些类似于下面显示的代码的事情。我希望这段代码打印“hellohello”,但它会打印“hello”,并出现错误。
$inner 闭包似乎无法访问外部函数的参数。这是正常行为吗?它是一个PHP错误吗?我看不出这怎么能被认为是正确的行为......
<?php
function outer($var) {
print $var;
$inner = function() {
print $var;
};
$inner();
}
outer('hello');
谢谢!
【问题讨论】:
-
这不是错误,而是一个特性:P 一个设计糟糕的特性......
-
另外,不仅仅是参数 - 它也是
outer()的任何本地变量。 -
哇。这很可悲。不过,谢谢您的回答!
标签: closures php-5.3 php-closures