【发布时间】:2018-10-22 14:53:00
【问题描述】:
我目前正在编写一些代码来在 PHP 7.0 中将关联数组的值向右移动,并且使用了一个没有指令的 for 循环:
$array = array("one" => 1, "two" => 2, "three" => 3, "four" => 4);
$first = reset($array);
$last = end($array);
for (end($array); current($array) !== $first && key($array) !== null; $array[key($array)] = prev($array)){
continue;
}
$array[key($array)] = $last;
代码工作并输出我需要的东西,但我不禁觉得这样的结构有问题。也许有更清晰的方法来做到这一点? (我问自己这个主要是因为我的代码将来不会由我维护,我希望它尽可能干净)
我在手册页或博客上找不到有关该主题的任何内容。是否普遍不赞成或更多取决于自己的意见?
【问题讨论】:
-
@RiggsFolly — 问题是关于最佳实践,而不是有效性。
-
@Quentin 我的回答是
No!,尽管最佳实践并不是真正的主题 -
绝对不是很可读。至少使用文档。
-
“代码将来不会由我维护,我希望它尽可能干净” - 那么你可能不应该使用这样的结构(在至少没有非常清晰的文档。)对于大多数开发人员来说,while 循环可能更具可读性。
-
这绝对是不直观的阅读。您是否尝试过将循环重写为
while或do while?