preg_match,应该定义$ matches吗?

时间:2016-06-30 15:30:48

标签: php

我看到一些脚本这样做:

$matches = [];
preg_match($pattern, $subject, $matches);

在调用函数之前是否有任何理由定义$matches变量?

或者可能只是为了避免某些IDE发出未定义的变量警告?

1 个答案:

答案 0 :(得分:1)

请记住,preg_match将返回01,具体取决于是否与正则表达式匹配。因此,对于许多程序,您只想知道是否有匹配的东西,而您并不关心实际匹配的内容。

$matches适用于您想知道字符串的哪些部分匹配的情况。这就是为什么它是一个可选参数。 http://grab.by/RbjQ(方括号[]表示可选参数)

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

你是对的,不必先定义$matches。 IDE不喜欢它(它们是未定义的变量),这是定义它的原因。