我有以下代码:
$strings = ...
$chars = array();
foreach ($strings as $s) {
$firstChar = mb_substr($s, 0, 1, 'utf-8');
if (!in_array($firstChar , $chars)) {
array_push($chars, $firstChar);
}
// unset($firstChar); // HERE?
}
// unset($firstChar); // HERE?
我应该在哪里放置unset
变量的firstChar
?在foreach里面?外?有这样做的最佳做法吗?
在像Java o C#这样的语言中,firstChar
应该在每次迭代结束时死亡,但在PHP中,这种变量没有单独的范围(如果我错了,请纠正我,我'我仍是php的新手
我想要第一个unset
,但我想听听你的想法: - )
谢谢!
答案 0 :(得分:0)
我把它放在最后,没有必要在每次迭代结束时取消它,只是在迭代开始时重新分配它。
但一般来说,如果你在循环之后不打算使用firstChar,为什么要取消它呢?
答案 1 :(得分:0)
在你的代码中,如果在foreach循环内部或foreach循环之后使用unset,则逻辑中不会发生任何影响,因为你在每次迭代中初始化了这个$ firstChar变量。
但是在foreach循环之后使用unset,因为如果你在for循环中使用unset,则需要几毫秒的时间来取消设置该变量。