gpt4 book ai didi

php - 如果 {} 在 if : endif

转载 作者:可可西里 更新时间:2023-11-01 12:29:54 25 4
gpt4 key购买 nike

为什么它不起作用?在第 7 行出现 Parse error: syntax error, unexpected ':' ...

$a = 0; $b = 1; $c = 3; $d = 4;
if ($a == $b):
if ($b == $c) {
// something
}
else:
$c = $a;
endif;

但如果我将其更改为(刚刚添加的 else 语句):

$a = 0; $b = 1; $c = 3; $d = 4;
if ($a == $b):
if ($b == $c) {
// something
} else {
// something
}
else:
$c = $a;
endif;

它工作正常。

这是为什么呢?这不是一个 PHP 错误吗?或者有关于 if...else 我应该知道的规则?

无论如何,我使用的是 PHP 5.3.3 版本。

最佳答案

我不确定我是否会称这是一个错误,但我相信你遇到这个问题是因为 dangling else ,结合您的混合 if-else 语法:

if ($a == $b):            // 1
if ($b == $c) { // 2
// something // 3
} // 4
else: // 5 - this else
$c = $a; // 6
endif; // 7

请注意第 5 行的 else 是如何产生歧义的:它可能“属于”第一个或第二个 if 语句。

您可以通过在嵌套的 if 后添加分号轻松消除歧义并修复语法错误:

if ($a == $b):            // 1
if ($b == $c) { // 2
// something // 3
}; // 4 - here
else: // 5
$c = $a; // 6
endif; // 7

另一方面,请不要使用这种语法,除非你想让你的程序员同事在你睡梦中把你打死。

关于php - 如果 {} 在 if : endif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9932762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com