我需要浏览一些用PHP编写的页面,那些不知道应该在使用前初始化变量的人。
因此,我有数千行要检查,以确保我没有这样的事情。
<?php
$foo = $bar . "I m a noob";
?>
当然,$bar的问题还没有初始化。问题是,在这个例子中,我在25个文件中有大约20~50个变量。
您知道超级英雄方式将所有变量设置为“”或null吗?我不想将警告级别设置为E或W。太烂了。
提前感谢!
发布于 2013-12-09 09:47:23
从理论上讲,脚本开头的这段代码完成了以下工作:
$code = file_get_contents(__FILE__);
preg_match_all('/(?<=\$)[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $code, $matches);
$variables = array_unique($matches[0]);
foreach ($variables as $variable) {
if (!isset($$variable)) {
$$variable = null;
}
}
正则表达式来自PHP站点。
编辑
一种干净而快捷的方式,没有正则表达式:
$code = file_get_contents(__FILE__);
$tokens = token_get_all($code);
foreach ($tokens as $token) {
if (is_array($token) && $token[0] == T_VARIABLE) {
$variable = ltrim($token[1], '$');
if (!isset($$variable)) {
$$variable = null;
}
}
}
发布于 2013-12-09 09:25:01
您可以为25使用一个数组:
for ($i = 0; $i < 25; $i++) { $bar[$i] = ''; /* you can change the "" to null */ }
使用带有for的数组,您可以使用diferente值或相同的值设置大量的vars。
https://stackoverflow.com/questions/20476516
复制