我有一个非常简单的问题。我如何使这个代码
$i = 0;
foreach($Array as $Value)
{
echo $i;
$i++
}
但是写成这样?
foreach($Array as $Value)
{
$i = 0;
echo $i;
$i++
}
我应该使用STATIC变量吗?还是怎样我对此没有明确的看法。
谢谢!
你真的不应该这么做。静态变量用于在调用它们所嵌入的函数之间保持变量的值。它们对简单的循环没有用处。您的第二个代码将在每次迭代中将计数器重置为零。
例如,这是一个正确的用法:
function count() {
static $x = 0; // executed the first time count() is called, then never again"
echo ++$x;
}
count(); // 1
count(); // 2
count(); // 3
你当然可以有
foreach($array as $val) {
static $x = 0;
echo ++$x;
}
但是您不会得到任何东西,因为在循环的持续时间内,特定的代码段永远不会超出范围,所以$x的值永远不会"丢失"。
您可能想要使用
foreach($Array as $i => $Value)
{
echo $i;
}
或
foreach(array_values($Array) as $i=>$Value)
{
echo $i;
}
虽然第一个例子是正确的,但也是正确的