2011-04-15 81 views
2

如果我有一个名为name()的函数,我可以检查if (name()) {},如果name()的计算结果为true,那么将执行if的主体。如何在PHP中的if语句中使用成员函数

但像这样一类:

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

如果我尝试:

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

或者这样:

if (thumb($db)) {} 

我得到:

Fatal error: Call to undefined function thumb() .

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

+0

为什么你想要fn(fn())?尝试如果($ miniaturas-> thumb($ db)){} – Stewie 2011-04-15 17:41:07

回答

5

这只是if ($miniaturas->thumb($db)) { ... }。这是因为您将thumb()定义为成员函数到类miniaturas,并且因为它是该类的成员,所以它不是全局名称空间的成员。

+0

在这种情况下,我需要删除$ miniaturas-> thumb($ db);之前,如果只是执行($ miniaturas->拇指($ db)),否则我得到一个mysqli的错误。但现在作品 – user455318 2011-04-15 17:55:18

+0

不知道我跟着你,但很高兴你明白了。 – 2011-04-15 17:57:30

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

除非你确实有一个功能叫thumb你想

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

额外的函数调用拇指什么是打破

1

试试这个:

if(function_exists("$miniaturas->thumb")) 
0

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

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

除了从尼尔,使用以下的php内置函数为方法/函数所有脑干的I检查评论:

  1. function_exists:我用这一个,看是否纯函数存在

    if(function_exists('thumb')){ thumb($ db); }

  2. method_exists:我更喜欢使用一个,如果我要检查的对象

    $ miniaturas =新miniaturas的 “方法”(); (method_exists($ miniaturas,'thumb')){{{miniaturas-> thumb($ db);}};}}}}}}}}}} { }

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

doc for function_exists

doc for method_exists

doc for is_callable

1

我想你想 如果($ miniaturas->拇指($ DB)){// 代码 } 和方法的拇指应该返回一个布尔型