我有这个数组:
array (
'cfop' => '3',
'cst' => NULL,
'cstPis' => '2',
'cstCofins' => '1',
)
Run Code Online (Sandbox Code Playgroud)
这段代码:
while ($t = current($taxes))
{
$getkey = key($taxes);
Log::debug($getkey);
//$this->saveTaxes($getkey, $t, $add);
$t = next($taxes);
}
Run Code Online (Sandbox Code Playgroud)
ps:$taxes是数组
由于某种原因,next函数doenst不传递null值,因此日志只打印cfop.
如果我改变这样的顺序
array (
'cfop' => '3',
'cst' => '2',
'cstPis' => NULL,
'cstCofins' => '1',
)
Run Code Online (Sandbox Code Playgroud)
日志将打印cfop,cst但在NULL后它不会达到下一个值
null是一个虚假值,所以当你这样做时$t = current($taxes),它会评估为虚假的东西,这就是它停止执行的原因.
如果你想迭代每个值,我会建议使用foreach循环.
foreach ($taxes as $key => $value) {
Log::debug($key);
// $this->saveTaxes($key, $value, $add);
}
Run Code Online (Sandbox Code Playgroud)