使用function_exists检查是否找到了PHP函数

时间:2015-11-21 22:13:38

标签: php

有没有办法使用function_exists我可以检查一下,例如,如果' mysql_query'被调用,因此我可以通过if语句运行一些代码?基本上是错误的,这样我就可以把它改成PDO了?

2 个答案:

答案 0 :(得分:1)

function_exists()仅用于检查函数是否定义而不是函数被调用

但是,您可以rename and override a PHP function使用评论中提到的@wogsland包装器来获得所需的效果。此方法需要APD installed。例如:

<?php

// First rename existing function
rename_function('mysql_query', 'original_mysql_query');

// Override function with another
override_function('mysql_query', '$query', 'return override_mysql_query($query);');

// Create the other function
function override_mysql_query($query)
{
    echo "Calling original_mysql_query($query)";
    return original_mysql_query($query);
}

答案 1 :(得分:1)

在php 7中,mysql_ *函数被删除,然后您可以重新定义它们,将它们指向新函数,例如mysqli或PDO。

但是要回答你的问题,你也可以在本页解释的PHP中重命名内部函数: http://php.net/manual/en/function.runkit-function-rename.php

创建一个与您尝试调用的函数同名的用户函数,并让它执行其他操作。但我不推荐它。

正如NoChecksum所说,“rename_function”和“override_function”也是一种选择。