为什么 (如果为假则返回“真”) ... 返回真?

4
在函数的开头我有以下代码:
if(false);
{
    return 'TRUE';
}

它返回的是"TRUE"!显然,我的真正用途是检查更有用的表达式并返回其他东西。我只是改变了它来阐述我的观点。

为什么会这样?你不能在if语句中放置一个返回吗?在其他语言中,我经常这样做。

例如

不是这样:

function () {
if(something)
{
//process stuff
}
}

需要将函数内的所有内容都包裹在if语句中。

我更喜欢这样做:

function() {
if(!something)
return;
//process stuff
}

在PHP中这样不行...有没有解决方法?

2个回答

21

你只是有点疯狂。 :)

if(false); //   <----- remove semi colon
{
    return 'TRUE';
}

应该少一个分号。

if(false)
{
    return 'TRUE';
}

3
现在我感觉自己很蠢。今天过得真的很长,但在发布之前我应该看到那个问题的。 - JD Isaacks
1
发现一个容易耗费数小时的错误,加1分。也许当面对这种错误时寻找分号已经成为一种习惯... - user395760
1
如果这应该是一个布尔值,它应该写作TRUE,不带有' - Gordon
@Gordon,它不应该是一个布尔值,我正在回显函数返回的内容,我只是快速将其更改为“true”,以便我可以直观地看到if是否返回true。 - JD Isaacks
顺便说一下,我总是把开头的“{”括号放在与我的IF语句相同的行上。我发现通过快速浏览最右边的字符来区分它是一个if行更容易。 - Dutchie432

8
你的 if 条件之后有一个多余的分号。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接