Php 代码替代
我可以替换吗Php 代码替代,php,casting,Php,Casting,我可以替换吗 if(!$mail->Send()) { return false; } else { return true; } 用这个 return (bool)$mail->Send(); 无论$mail->Send()返回什么(它是一个三方对象) 是否有任何类型的(bool)与感叹号的作用不同?是的,您可以这样做,如果它不起作用,您可以这样做:返回$邮件->发送()您可以将其简化为: return $mail->Send() ? true : fal
if(!$mail->Send()) {
return false;
} else {
return true;
}
用这个
return (bool)$mail->Send();
无论$mail->Send()返回什么(它是一个三方对象)是否有任何类型的(bool)与感叹号的作用不同?是的,您可以这样做,如果它不起作用,您可以这样做:
返回$邮件->发送()代码>您可以将其简化为:
return $mail->Send() ? true : false;
是,允许使用以下类型:
允许的演员阵容包括:
- (int),(整数)-强制转换为整数
- (布尔),(布尔)-强制转换为布尔
- (浮动),(双重),(实际)-转换为浮动
- (字符串)-转换为字符串
- (阵列)-强制转换为阵列
- (对象)-强制转换到对象
- (未设置)-强制转换为NULL(PHP5)
否则,也可以使用
return !!$mail->Send();
但是,对于将来查看您的代码的其他人来说,这不是很明显。是的,您的替换工作正常
return (boolean)$mail->Send();
如果语句是以一种非常奇怪的方式编写的,代码>标记是逻辑的而不是,它只是简单地反转布尔值,所以它说
如果$mail->Send()
为非
真,则返回假
,否则返回真
,只要Send()函数的返回类型为布尔类型,就可以使用以下方法:
return $mail->Send();
使用双关(!!
)的原因是显式地将$mail->Send()
的返回类型强制转换为bool
。我只是想让你知道:-)我知道-这是我对他的问题最初的回答;)哦,对了。我只是想给那些不一定知道的人补充一点解释;前一段时间这里有一个关于双刘海的问题。因为如果$mail->Send()
失败,这将返回true,而不是false,这是更自然的行为,也是OP想要的。@Jam,我不确定你的意思。返回$邮件->发送()?假:真代码>?自从我第一次发表评论以来,您已经编辑了您的问题。我的意思是,如果$mail->Send()
返回一个false
值,在它反转结果之前先发出一声巨响(!
),如果$mail->Send()
是真的,那么整批都返回false
,反之亦然,这是违反直觉的(错误时正确),也不是OP想要的行为。哎呀,那实际上是个打字错误!哎呀,我以为我输入了$mail-Send()
。然后我想了想,觉得三元格式对未来的代码读者来说更为有意。我不确定$mail->Send()返回什么,我正在重写一个三方对象的代码示例,我想要一个布尔值。然后使用以下命令确保结果被转换为布尔值:return$邮件->发送()@路易斯,我会小心使用你不知道的任何东西,比如返回类型。第三方代码没有文档吗?您也可以return!!($mail->Send())
。