我有一个非常简单的问题。我怎样才能制作这个代码
$i = 0;
foreach($Array as $Value)
{
echo $i;
$i++
}
但是这样写?
foreach($Array as $Value)
{
$i = 0;
echo $i;
$i++
}
我应该使用静态变量吗?或者是什么?我对此没有明确的看法。
谢谢!
你真的不应该那样做。静态变量用于在调用它们嵌入的函数之间保持变量的值。它们对于简单的循环没有用。您的第二个代码只会在每次迭代时将计数器重置为零。
例如,这是一个正确的用法:
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;
}
虽然首先你的例子也是正确的