PHP - 检查函数是否包含

时间:2017-03-10 14:46:45

标签: php

我想检查一个函数是否包含一个名为$marker的变量。

这就是我要做的事情:

if(function('head') contains '$marker') {
     return true;
}

有没有办法做到这一点?

1 个答案:

答案 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");

?>