我想检查一个函数是否包含一个名为$marker
的变量。PHP - 检查函数是否包含
这就是我想要做的事:
if(function('head') contains '$marker') {
return true;
}
有没有办法做到这一点?
我想检查一个函数是否包含一个名为$marker
的变量。PHP - 检查函数是否包含
这就是我想要做的事:
if(function('head') contains '$marker') {
return true;
}
有没有办法做到这一点?
嗯...它不是内置于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");
?>
为什么?这样做没有真正的理由吗?函数中使用的变量只应该在函数本身内部相关。你究竟在努力实现什么? –
简短答案是“否”。你没有理由需要这样的功能,除了设计不佳的程序。你想要达到什么目的?不管它是什么,肯定还有其他(“正确的”)方法来做到这一点。 – axiac
@MarkBaker我试图阻止来自插件的一些垃圾邮件,我不想修改插件文件本身,因为一旦它们更新,垃圾邮件就会回来。 –