2015-10-29 26 views
-1

例子:訪問方法誰在定義特徵從對象

trait TaxTools { 
function calculateтax ($price) { 
return self::prop . $price ; 
} 
} 

abstract class Alert{ 
    const prop = 'value__'; 

    abstract function limpopo(); 

} 
class Alert2 extends Alert{ 
    use TaxTools; 
    public function limpopo(){ 
     // return self::$foo; 
     return self::foo; 
    } 


} 

$obj = new Alert2; 

echo $obj->calculateтax(8); //value__8 
echo '<br>'; 
echo $obj::calculateтax(8); //value__8 

echo '<br>'; 
echo $obj::limpopo(); //Fatal error: Undefined class constant 'foo' 

問題:爲什麼我們可以訪問到誰的特質定義爲從對象由::語法的方法?

+1

如果你想有一個靜態方法,那麼你應該將其創建爲靜態方法 –

+1

但自我:: foo的並不在你的類或您的性狀的任何地方存在,那麼你應該會當一個錯誤您嘗試訪問它 –

回答

0
Deprecated: Non-static method Alert2::calculateтax() should not be called statically in ... on line 28 

Deprecated: Non-static method Alert2::limpopo() should not be called statically in ... on line 31 

已過時的錯誤。如果您未打開顯示已棄用的級別錯誤,您將無法看到它。

將其打開。

http://php.net/manual/ru/errorfunc.constants.php