php if多条件,php – 多个IF语句条件

我有一个PHP脚本,它通过我自己的自定义函数运行一个值数组,该函数使用PHP函数preg_match.它正在寻找与我的正则表达式为$valueA的匹配,并且我要搜索的字符串为$valueB,如果找到匹配,则将其返回到$match,否则我不希望我的IF语句运行.

现在,如果函数找到匹配(换句话说,为TRUE),我运行这个IF语句没问题;

if ($match = match_this($valueA, $valueB))

{

//do this

}

但是,如果我想比较一个额外的条件来检查它是否也是TRUE,并且只在两个都为TRUE时运行IF语句,我会遇到问题;

if ($match = match_this($valueA, $valueB) && $x == 'x')

{

//do this

}

当两个条件都为TRUE时,我最终输出1来自$match而不是我的$match值,而不是正常运行.

我可以看看发生了什么.我的IF语句只是将一个文字布尔值TRUE返回到$match,而不是我从match_this()返回的值;

这是因为我只能回归一种真实感吗?

我可以通过使用两个嵌套的IF语句来解决这个问题,但为了清晰的代码,我希望能够比较我的IF中包含返回值的函数的多个条件.

是否有不同种类的真实?如果是这样,我如何以这种方式比较它们?或者有更简单的方法吗?我想我可以在我的函数中放入第二个IF语句并通过函数传递我的第二个条件,但是我的函数在其目的方面不会非常明确地定义.

我之前遇到过这个问题,并不太清楚我在寻找什么.希望有人能提供帮助.

解决方法:

if (($match = match_this($valueA, $valueB)) && $x == 'x')

^ ^

你错过了一组额外的括号.

如果没有$match = match_this($valueA,$valueB)周围的额外括号,则评估&&&首先执行,最后将结果分配给$match.

或者,您可以使用和(优先级低于赋值=)而不是&&

标签:php,function,if-statement,condition,statements

来源: https://codeday.me/bug/20190517/1124030.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值