如何在PHP中的if语句中使用成员函数

时间:2011-04-15 17:38:15

标签: php class

如果我有一个名为name()的函数,我可以检查if (name()) {},如果name()的计算结果为true,则执行if的正文。

但是有这样一个类:

$miniaturas = new miniaturas();
$miniaturas->thumb($db);

如果我尝试:

if (thumb($miniaturas->thumb($db))) { }

或者这个:

if (thumb($db)) {}

我明白了:

  

致命错误:调用未定义的函数thumb()。

如何在类中调用此函数,就像我对类外的函数一样?

6 个答案:

答案 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内置函数检查方法/函数是否存在:

  1. function_exists:我用这个来查看是否存在普通函数

    if(function_exists('thumb')){     拇指($分贝); }

  2. method_exists:如果我必须检查对象的“方法”,我更喜欢使用那个

    $ miniaturas = new miniaturas();

    if(method_exists($ miniaturas,'thumb')){     $ miniaturas->拇指($分贝); }

  3. 除此之外,您还可以使用is_callable,它检查函数/方法是否可调用...看看

    doc for function_exists

    doc for method_exists

    doc for is_callable

答案 4 :(得分:1)

我想你想要的 if($ miniaturas-> thumb($ db)){     //代码 } 并且方法thumb应该返回一个布尔值

答案 5 :(得分:0)

function_exists()函数用于确定函数是否存在:

if (function_exists('thumb')){
  //...
}