0

我有一个非常简单的问题。我怎样才能制作这个代码

$i = 0;
foreach($Array as $Value)
{

    echo $i;
    $i++
}

但是这样写?

foreach($Array as $Value)
{
    $i = 0;
    echo $i;
    $i++
}

我应该使用静态变量吗?或者是什么?我对此没有明确的看法。

谢谢!

4

2 回答 2

2

你真的不应该那样做。静态变量用于在调用它们嵌入的函数之间保持变量的值。它们对于简单的循环没有用。您的第二个代码只会在每次迭代时将计数器重置为零。

例如,这是一个正确的用法:

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 的值永远不会“丢失”。

于 2012-07-20T14:41:14.027 回答
1

你可能想要使用

foreach($Array as $i => $Value)
{
    echo $i;    
}

或者

foreach(array_values($Array) as $i=>$Value)
{

    echo $i;
}

虽然首先你的例子也是正确的

于 2012-07-20T14:38:28.570 回答