Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP布尔值真/假?_Php_Boolean - Fatal编程技术网

PHP布尔值真/假?

PHP布尔值真/假?,php,boolean,Php,Boolean,我想不出来 如果我键入: function myfunction(){ ...... if ... return TRUE; if ... return FALSE; } 为什么我不能这样使用它: $result = myfunction(); if ($result == TRUE) ... if ($result == FALSE) ... 或者我必须使用: $result = myfunction(); if ($result =

我想不出来

如果我键入:

function myfunction(){
    ......
    if ...
        return TRUE;
    if ...
        return FALSE;
}
为什么我不能这样使用它:

$result = myfunction();
if ($result == TRUE)
...
if ($result == FALSE)
...
或者我必须使用:

$result = myfunction();
if ($result == 1)
...
if ($result == 0)
...
或者这个:

$result = myfunction();
if ($result)
...
if (!$result)
...
记住,值-1被认为是真的,就像任何其他非零(无论是负数还是正数)数字一样。FALSE将是0 obv.。

您可以这样做

$result = myfunction();
if ($result === TRUE)
...
if ($result === FALSE)
...

你可以使用
if($result==TRUE)
,但这太过分了,因为
if($result)
就足够了。

我不完全理解你的问题,但你可以使用你提供的任何示例,但要注意以下几点:

如果你说
If(a==TRUE)
(或者,因为与
TRUE
的比较是多余的,简单地说
If(a)
),那么你必须理解PHP会将一些事情评估为TRUE:1、2987、“hello”等等。;它们都是“真正的”价值观。这很少是一个问题,但你应该理解它


但是,如果函数返回的值大于
true
false
,则您可能有兴趣使用
=
==
确实比较了变量的类型:
“a”==true
true
,但是
“a”==true
是false。

如果您不需要使用结果变量$result,我将执行以下最短版本:

if (myfunction()) {
    // something when true
} else {
    // something else when false
}

小注释:代码如下:
if…返回true;否则返回false应始终重写为
返回…==true或者,在类型安全语言中,只需
返回
if
在这里根本没有意义,因为我们正在测试的条件已经对应于返回值。
if (myfunction()) {
    // something when true
} else {
    // something else when false
}