我想检查一个函数是否包含一个名为$marker
的变量。
这就是我要做的事情:
if(function('head') contains '$marker') {
return true;
}
有没有办法做到这一点?
答案 0 :(得分:0)
嗯......它没有内置到PHP中,坦率地说,更改文件会更好,但是出于科学原因,我写了一张支票。它在每个函数调用时都会获取文件名的内容,所以如果您多次使用它,我建议将文件的内容存储在另一个变量中,但是,这将为您提供有关如何执行此操作的功能视图:
<?php
function test() { $marker;}
function negativeTest() {
$noMarker;
}
function checkFunction($function, $variable, $filename) {
$file = file_get_contents($filename);
preg_match_all("/function\s+([a-z0-9_-]+)\s*\(.*?\)\s*\{((\n|.)*?)\}/im",$file,$matches);
for ($i = 0; $i < count($matches[1]); $i++) {
if ($matches[1][$i] == $function && strpos($matches[2][$i], $variable) != false) {
return true;
}
}
return false;
}
echo checkFunction("test","\$marker","index.php");
?>