虽然在PHP手册中找不到“ foreachelse”,但我提出了自己的建议。
您会说以下建议吗? 我是紧凑代码的爱好者,并且我认为它具有良好的可读性。 而且它可以工作。
$consequences = array("You ", "will ", "burn ", "for ", "this!");
if(!empty($consequences)) foreach($consequences as $consequence) {
// 100 lines of code to be inserted here
echo $consequence;
} else echo "No consequences";
在测试之前,我实际上以为我不能在“无大括号声明”中使用大括号,但是看起来可以。
在这种情况下,是否有使用卷发制动器的论点?
答案 0 :(得分:1)
虽然对您来说这也许是紧凑而整洁的,但是它并没有遵循这些东西的编写惯例。您的代码将很难被其他开发人员阅读。尽管没有绝对的“标准”来编写代码,但世界上有很大一部分人采用了一些约定。
一行if (something) do;
语句是邪恶的,即使不需要使用花括号,也可以将其分成两行:
if (something)
do;
这不仅易于阅读,而且使调试更加容易,因为如果正在使用调试器,则可以在“ do”行上放置一个断点;或者,如果执行代码,则可以明确表达式的计算结果是否为true
在您的情况下,它将变为:
if(!empty($consequences))
foreach($consequences as $consequence) {
// 100 lines of code to be inserted here
echo $consequence;
}
else
echo "No consequences";
尽管这不是您所说的“紧凑”,但它是可维护的,并且在编写清晰的代码(稍后易于调试)时,非常容易看到代码路径,这是您的主要目标。
还要注意,由于PHP5.4不再需要array
关键字,因此您可以使用以下代码:
$consequences = ["You ", "will ", "burn ", "for ", "this!"];
不仅更“紧凑”,而且与其他语言(例如C)更加内联,因此非常易读。
简而言之,如果您不愿意对“纯”代码的观点进行调整,那么您将在这个行业中苦苦挣扎。他人将很难与您合作,并且您将难以阅读他人编写的代码。