我看到一些脚本这样做:
$matches = [];
preg_match($pattern, $subject, $matches);
在调用函数之前是否有任何理由定义$matches
变量?
或者可能只是为了避免某些IDE发出未定义的变量警告?
答案 0 :(得分:1)
请记住,preg_match
将返回0
或1
,具体取决于是否与正则表达式匹配。因此,对于许多程序,您只想知道是否有匹配的东西,而您并不关心实际匹配的内容。
$matches
适用于您想知道字符串的哪些部分匹配的情况。这就是为什么它是一个可选参数。 http://grab.by/RbjQ(方括号[]
表示可选参数)
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
你是对的,不必先定义$matches
。 IDE不喜欢它(它们是未定义的变量),这是定义它的原因。