有没有办法在不先声明变量的情况下使用preg_match_all?

时间:2011-10-15 21:03:20

标签: php syntax

我是否可以在preg_match_all函数中使用一些花哨的语法来建立新的$ matches变量,而不是像我之前所做的那样事先这样做?

 $matches = '';
 preg_match_all('/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/', file_get_contents($eFetchURL), $matches);

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

是的,即:

preg_match_all('/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/', file_get_contents($eFetchURL), $matches);

在PHP中引用一个不存在的变量不是错误。相反,PHP会自动为您声明变量并将其定义为NULL。

答案 1 :(得分:0)

不声明变量会抛出E_NOTICE。根据php.ini或运行时配置,使用error_reporting函数,可以省略或不例外。

良好的做法是在开发环境中启用E_STRICT模式。

注意:

  

在开发期间启用E_NOTICE有一些好处。出于调试目的:NOTICE消息将警告您代码中可能存在的错误。例如,警告使用未分配的值。找到拼写错误并节省调试时间非常有用。注意消息将警告您不良风格。例如,$ arr [item]最好写成$ arr ['item'],因为PHP试图将“item”视为常量。如果它不是常量,PHP假定它是数组的字符串索引。

注意:

  

在PHP 5中,可以使用新的错误级别E_STRICT。由于E_STRICT未包含在E_ALL中,因此您必须明确启用此类错误级别。在开发期间启用E_STRICT有一些好处。 STRICT消息将帮助您使用最新和最好的建议编码方法,例如警告您使用已弃用的函数。

您可以在

中找到更多信息

http://php.net/manual/en/errorfunc.configuration.php