代码替换

时间:2011-08-30 14:36:13

标签: php casting

可以替换

if(!$mail->Send()) {
    return false;
} else {
    return true;
}

这个?

return (bool)$mail->Send();

无论$ mail-> Send()返回什么(它是三方对象)
是否存在(bool)与感叹号不同的任何类型?

5 个答案:

答案 0 :(得分:3)

是的,允许typecasting以下类型:

  

允许演员阵容:

     
      
  • (int),(integer) - 强制转换为整数
  •   
  • (bool),(boolean) - cast to boolean
  •   
  • (float),(double),(real) - cast to float
  •   
  • (string) - cast to string
  •   
  • (数组) - 强制转换为数组
  •   
  • (object) - 强制转换为对象
  •   
  • (未设置) - 强制转换为NULL(PHP 5)
  •   

否则,也可以使用

return !!$mail->Send();
但是,对于其他未来查看代码的人来说,这并不是很明显。

答案 1 :(得分:1)

是的,你可以,如果它不起作用,你可以这样做:return !!$mail->Send();

答案 2 :(得分:1)

你可以简化它:

return $mail->Send() ? true : false;

答案 3 :(得分:1)

是的,您的替换工作正常......

return (boolean)$mail->Send();

if语句以非常奇怪的方式编写,!标记是逻辑NOT,只是反转bool,所以它说...

如果$mail->Send() NOT为真,则返回false,否则返回true

答案 4 :(得分:0)

只要Send()函数的返回类型是布尔类型,您就可以使用它:

return $mail->Send();