如果我有一个名为name()
的函数,我可以检查if (name()) {}
,如果name()
的计算结果为true,则执行if
的正文。
但是有这样一个类:
$miniaturas = new miniaturas();
$miniaturas->thumb($db);
如果我尝试:
if (thumb($miniaturas->thumb($db))) { }
或者这个:
if (thumb($db)) {}
我明白了:
致命错误:调用未定义的函数thumb()。
如何在类中调用此函数,就像我对类外的函数一样?
答案 0 :(得分:5)
只是if ($miniaturas->thumb($db)) { ... }
。这是因为您将thumb()
定义为类miniaturas
的成员函数,并且因为它是该类的成员,所以它不是全局名称空间的成员。
答案 1 :(得分:1)
if (thumb($miniaturas->thumb($db))) {}
除非您实际拥有一个名为thumb
的函数
if ($miniaturas->thumb($db)) {}
对拇指的额外函数调用正在破坏
答案 2 :(得分:1)
试试这个:
if(function_exists("$miniaturas->thumb"))
答案 3 :(得分:1)
除了Neal的评论之外,我使用以下php内置函数检查方法/函数是否存在:
function_exists:我用这个来查看是否存在普通函数
if(function_exists('thumb')){ 拇指($分贝); }
method_exists:如果我必须检查对象的“方法”,我更喜欢使用那个
$ miniaturas = new miniaturas();
if(method_exists($ miniaturas,'thumb')){ $ miniaturas->拇指($分贝); }
除此之外,您还可以使用is_callable,它检查函数/方法是否可调用...看看
答案 4 :(得分:1)
我想你想要的 if($ miniaturas-> thumb($ db)){ //代码 } 并且方法thumb应该返回一个布尔值
答案 5 :(得分:0)
function_exists()
函数用于确定函数是否存在:
if (function_exists('thumb')){
//...
}