我一直在阅读一些 PHP 扩展教程,但我找不到任何有关如何重载现有函数的信息。
例如,我想将 fopen() 更改为类似
PHP_FUNCTION(fopen)
{
if condition_is_true(condition)
original_fopen();
else
show_error();
}
我怎么能那样做?谢谢
PS。我的意思是扩展名(用 C 编写,编译为 .so 并包含在 httpd.conf 中,而不是 .php 程序)
编辑:找到解决方案,感谢 Gordon 链接。
我已经下载了功能的 PECL 包rename_function
。它的源代码使我得出了必要的结论:
有一个全局哈希表
function_table
,它根据函数的名称保存函数的所有指针。zend_hash_find
//将允许我在这个表中做任何我想做的改变zend_hash_add
。zend_hash_del