2011-04-15 79 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)){// 代碼 } 和方法的拇指應該返回一個布爾型