我有一个名为db.php的类.....我在其中有以下方法。
function query($sql){
return mysql_query($sql);
}
我希望只有这个班级可以使用
的mysql_query
但其他人不能。其他人只能通过调用
来使用$ DB->查询
这个班的功能。
有可能吗? 任何帮助将不胜感激!
答案 0 :(得分:3)
我很确定这可以通过间接方式实现。您可以重命名该功能,如果需要,可以再次调用它:
rename_function('mysql_query', 'mysql_query_old' );
function mysql_query(){
//do whatever
//pass the call to original method if needed.
$args = func_get_args();
if (count($args) === 2)
return mysql_query_old($args[0], $args[1]);
else
return mysql_query_old($args[0]);
}
要将其限制为某个类,您只需检查调用类:
$trace = debug_backtrace()[1];
$class = $trace['class'];
答案 1 :(得分:1)
据我所知,PHP中的函数禁用是一个全有或全无的设置:
PHP_INI_SYSTEM
因此是系统范围的设置。我不认为没有像你问的那么细腻。无论您使用遗留的mysql扩展编写新代码的原因是什么,您都必须找到另一种解决方案。