我不知道';我不理解这段php代码的输出?
我理解这个代码有困难,请有人给我解释一下好吗我不知道';我不理解这段php代码的输出?,php,Php,我理解这个代码有困难,请有人给我解释一下好吗 <?php $i = 0; $func1 = function() use ($i) { echo "$i"; }; $func2 = function() use (&$i) { echo "$i"; }; for ( $i=1; $i<=5; $i++ ) { $func1(); $func2(); } ?> 输出:01 0 2 0 3 0 4
<?php
$i = 0;
$func1 = function() use ($i) { echo "$i"; };
$func2 = function() use (&$i) { echo "$i"; };
for ( $i=1; $i<=5; $i++ ) {
$func1();
$func2();
}
?>
输出:01 0 2 0 3 0 4 0 5
<?php
$i = 0;
$func1 = function() use ($i) { echo "$i"; };
$func2 = function() use (&$i) { echo "$i"; };
for ( $i=1; $i<=5; $i++ ) {
$func1();
$func2();
}
?>
当定义函数时,use($i)
的第一个定义从父范围获取值(因此,在$func1
中,$i
将始终是0
)。但是,当使用use(&$i)
时,第二个函数是通过引用$i
值,因此它将打印$i
的实际值,而不仅仅是在定义时
这些函数定义称为匿名函数
更多关于匿名函数的信息,请参阅
=========
因此,对于$func1
,$i
总是0
。
对于$func2
,它将从1
到5
(由于您的For
循环)
迭代1:func1:$i=0;func2:$i=1
迭代2:func1:$i=0;func2:$i=2
迭代N:func1:$i=0;func2:$i=N您希望看到的输出是什么?@summea我不明白&在这种情况下是如何工作的。为什么它引用for循环中定义的变量?格式非常好:PI不理解下行投票。这是一个完全正确的问题,但可能不是最好的写作方式。