将 preg_match() 结果与 (bool) 一起使用?
Use preg_match() result with (bool)?
我想我会将 preg_match()
的结果与 (bool)
一起使用,但我不太确定。我认为结果不是true
或false
不清楚。
示例 1:
if (((bool) preg_match($pattern, $string, $matches)) === true)
示例 2:
if (((bool) !preg_match($pattern, $string, $matches)) === true)
示例 3:
if (((bool) preg_match($pattern, $string, $matches)) === false)
示例 4:
if (((bool) !preg_match($pattern, $string, $matches)) === false)
另一种想法是:结果为0
或1
的东西将来也安全吗?你有这方面的经验吗?你能报告什么?
EDIT 0:鉴于 if
没有比较运算符,问题得到了扩展。 0
总是 false
而 1
总是 true
吗?
示例 5:
if ((preg_match($pattern, $string, $matches)))
示例 6:
if ((!preg_match($pattern, $string, $matches)))
这是正确的吗?
(preg_match($pattern, $string, $matches))
= 0
| 1
(!preg_match($pattern, $string, $matches))
= true
| false
不是!
preg_match() returns 如果模式匹配给定主题则为 1,如果不匹配则为 0,如果发生错误则为 FALSE。
这是 3 个可能的答案。如果将其简化为布尔值 (true/false),则会丢失一些信息。
$result = (bool) preg_match($pattern, $string, $matches);
$result 如果模式匹配则为真,否则为假或发生错误。
这个if条件只有在preg_match returns 1.
时才会执行
if (preg_match($pattern, $string, $matches)) {
}
如果不执行可能不匹配或出错
必须进行严格比较才能区分所有 3 个变体:
$preg_match_result = preg_match($pattern, $string, $matches);
if($preg_match_result === 1) {
//pattern matches
}
elseif($preg_match_result === 0) {
//pattern not matches
}
else {
//$preg_match_result === false
//an error occurred
}
我想我会将 preg_match()
的结果与 (bool)
一起使用,但我不太确定。我认为结果不是true
或false
不清楚。
示例 1:
if (((bool) preg_match($pattern, $string, $matches)) === true)
示例 2:
if (((bool) !preg_match($pattern, $string, $matches)) === true)
示例 3:
if (((bool) preg_match($pattern, $string, $matches)) === false)
示例 4:
if (((bool) !preg_match($pattern, $string, $matches)) === false)
另一种想法是:结果为0
或1
的东西将来也安全吗?你有这方面的经验吗?你能报告什么?
EDIT 0:鉴于 if
没有比较运算符,问题得到了扩展。 0
总是 false
而 1
总是 true
吗?
示例 5:
if ((preg_match($pattern, $string, $matches)))
示例 6:
if ((!preg_match($pattern, $string, $matches)))
这是正确的吗?
(preg_match($pattern, $string, $matches))
= 0
| 1
(!preg_match($pattern, $string, $matches))
= true
| false
不是!
preg_match() returns 如果模式匹配给定主题则为 1,如果不匹配则为 0,如果发生错误则为 FALSE。 这是 3 个可能的答案。如果将其简化为布尔值 (true/false),则会丢失一些信息。
$result = (bool) preg_match($pattern, $string, $matches);
$result 如果模式匹配则为真,否则为假或发生错误。
这个if条件只有在preg_match returns 1.
时才会执行if (preg_match($pattern, $string, $matches)) {
}
如果不执行可能不匹配或出错
必须进行严格比较才能区分所有 3 个变体:
$preg_match_result = preg_match($pattern, $string, $matches);
if($preg_match_result === 1) {
//pattern matches
}
elseif($preg_match_result === 0) {
//pattern not matches
}
else {
//$preg_match_result === false
//an error occurred
}