PHP函数返回布尔值

8

如何编写返回布尔值的函数?
我指的是像其他编程语言中那样。

return true; // return false

9
这正是在PHP中所要做的。 - Stephen
6个回答

14
问题并不完全有意义,因为你没有询问你已经解决的事情。 在 PHP 中可以这样实现该函数。
function check($int) {
   if ($int == 3) {
      return true;
   } else {
      return false;
   }
}
if (check(3)) echo "Returned true!";

我也可以在 if isset($int) 中检查吗?并且可以用另一个名为 $length 的参数代替 3 吗? - Cyril Horad
@ Cyril - 你可以检查任何你想要的... 你只需要编写函数来进行检查... 我建议你阅读有关函数的 PHP 文档章节:http://uk.php.net/manual/en/language.functions.php - Mark Baker
2
如果返回值是 ($int == 3),那不是更简单吗? - AntonioCS
1
@AntonioCS 是的,那将是一个更理想的方法,但请记住,这有些高级,并且不应该向没有掌握基础知识的初学者演示。完全正确,如果我正在进行比较,我也会这样做。 :) - BGPHiJACK
1
谢谢(: 我是一个Obj-C开发者,PHP对我来说有很多魔法。干杯。 - Felipe

8

令人难以置信的是

return true;

e.g.

function testIfABC($x) {
    if ($x === 'ABC') {
        return true;
    }
    return false;
}

虽然这可以更容易地写成:

function testIfABC($x) {
    return ($x === 'ABC');
}

这仍将返回一个布尔值


5
<?php

  function doSomething() {
    return true;
  }

你需要的函数可能是这样的:
  function check($var, $length) { 
    return (strlen($var)<=$length) && (isset($var));
  }

?>

奇怪,我有这个函数 function check($var, $length) { if((strlen(var)<=$length) && (isset($var))) { return true; } else { return false; } }。该函数检查$var是否有值,以及strlen()是否小于等于$length... 当运行时,在if行上出现错误。 - Cyril Horad
可能应该用 "strlen($var)" 而不是 "strlen(var)"? - oopbase

2
作为一个更实际的例子,您可以使用任何布尔表达式作为结果:
return ($data != "expected") or ($param == 17);

0
自 PHP 5.5 起,你可以使用 boolval 函数:

(PHP 5 >= 5.5.0, PHP 7) boolval — 获取变量的布尔值

return boolval( $result );

或者只需转换为布尔值。但也许这一切都不是必要的:

要将一个值显式转换为布尔值,请使用 (bool)(boolean) 强制转换。然而,在大多数情况下,强制转换是不必要的,因为如果运算符、函数或控制结构需要布尔参数,则值将自动转换。

return (bool) $result;
return (boolean) $result;

-1

我理解这个问题,因为在Visual C#中,你可以定义一个函数只返回bool类型。但在PHP中不是这样的。你只能使用函数blabla($val) { return ($val == "yes" ? true : false); }。没有支持“public bool($value) { return true; // false }”。


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