2011-07-21 37 views

回答

1

$objectVar = someClassName::someFunction($var); 

這裏,someFunction是一個靜態方法;即它屬於一個類,而不是一個對象。

$object = new someClassName(); 
$objectVar = $object->someFunction($var); 

在這段代碼中,它是一個應該通過一個對象訪問的實例方法。

結果可能相同,但用於調用該方法的句柄是不同的。

+0

爲了澄清,一個方法可以在其定義中聲明爲static/public/protected,對吧?所以真正的區別在於它是否屬於只屬於某個類的屬性,而不屬於某個對象的實例 - 您稱之爲「實例方法」?我只能預見通過變量實例中的變化來改變結果,如:$ this-> varName = value;然後運行實例方法。這是否合乎邏輯? – Ricalsin

+1

@Ricalsin:是的。這裏還有一個語義元素。函數是每個對象的屬性,還是一般類型的屬性?這個決定將決定你是否使它成爲靜態或非靜態成員函數; _that_將定義你必須使用哪種語法來調用它。 –

相關問題