2010-09-20 55 views
28
超級方法

你可以做PHP是這樣的:調用PHP中

function foo() 
{ 
    super->foo(); 

    // do something 
} 
+0

你能澄清* super *是什麼嗎?你在這個班上課嗎? – 2010-09-20 19:52:24

+0

@Pekka:super是Java用來訪問其父類的構造函數和方法的關鍵字。其他語言也可能使用此關鍵字。 – Powerlord 2010-09-20 19:56:04

+0

@R。 Bemrose啊,好的。這也解釋了爲什麼這麼多人馬上說「父母」 – 2010-09-20 19:56:49

回答

78

是的,這就是所謂的parent::雖然。

public function foo() 
{ 
    parent::foo(); // this is not a static method call, even though it looks like one 

    //do something 
} 
+4

我已經爲此答案+1了,但我又在這裏找到了自己。我很容易忘記這些事情。 – 2013-11-19 05:51:10

+1

@Mike,如果可能的話,我會對該評論+1 ...... :) – 2014-01-11 12:16:16

+7

我忘了它,因爲它是一個很奇怪的語法。這感覺就像是調用一個靜態方法。 – 2014-01-24 18:56:53

11

使用parent;

parent::foo();

+1

' - >'會觸發致命錯誤。總是使用'::'。 PHP將在調用子進程時以相同模式(實例/靜態)調用父進程。 – webbiedave 2010-09-20 19:52:31

+0

是的,我誤寫了,並在10秒內修復;) – 2010-09-20 19:53:06

+2

很酷。 +1 ------ – webbiedave 2010-09-20 19:54:02

6

你的意思是調用父類方法嗎?在這種情況下,你會這樣做:

class Bar 
{ 
    public function foo() 
    { 
    // blah 
    } 
} 


class Baz extends Bar 
{ 
    public function foo() 
    { 
    parent::foo(); 
    } 
}