有没有办法使用function_exists
我可以检查一下,例如,如果' mysql_query'被调用,因此我可以通过if语句运行一些代码?基本上是错误的,这样我就可以把它改成PDO了?
答案 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”也是一种选择。