我有一个 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 时,语句不会正常运行,而是最终从 $match 输出 1 而不是我的 $match 值应该是什么。
我可以看到发生了什么。我的 IF 语句只是将文字布尔值 TRUE 返回到 $match 中,而不是从 match_this() 返回的值;
这是因为我只能返回一种 TRUE 的感觉吗?
我可以通过使用两个嵌套的 IF 语句来解决这个问题,但是为了简洁的代码,我希望能够比较我的 IF 中的多个条件,其中包括返回值的函数。
有不同种类的 TRUE 吗?如果是这样,我该如何以这种方式比较它们?或者有没有更简单的方法?我想我可以在我的函数中放置第二个 IF 语句并通过函数传递我的第二个条件,但是我的函数就其用途而言不会被非常明确地定义。
我以前遇到过这个问题,不太清楚我在找什么。希望有人可以提供帮助。