2016-03-01 72 views
0

爲什麼我可以從動態聲明中調用類常量? 此代碼工作得很好:

echo $this::CONST; 

是不是錯了?

+0

爲什麼它是錯的調用呢?常量可以通過許多方式訪問。它是其中之一。請參閱http://stackoverflow.com/questions/7506530/accessing-a-class-constant-using-a-simple-variable-which-contains-the-name-of-thr – Drudge

+0

您正在將常量與私有變量混合爲它似乎 –

回答

0

http://php.net/manual/en/language.oop5.constants.php

<?php 
class MyClass 
{ 
    const CONSTANT = 'constant value'; 

    function showConstant() { 
     echo self::CONSTANT . "\n"; 
    } 
} 

echo MyClass::CONSTANT . "\n"; 

$classname = "MyClass"; 
echo $classname::CONSTANT . "\n"; // As of PHP 5.3.0 

$class = new MyClass(); 
$class->showConstant(); 

echo $class::CONSTANT."\n"; // As of PHP 5.3.0 
?> 

從動態宣言,呼籲恆定的作品一樣好從類

+0

我知道它))但從動態 環境調用常量是否真的是正確的?) – derrs

+0

常量只是一個值,不會在類聲明內部更改,因此該類的每​​個實例將具有該常量與它的值。從實例調用它沒有問題:) – tomiy

+0

沒問題。代碼設計中的問題。我在一個開發人員的代碼中發現了$ this :: CONST,並且笑了))我想,這很醜陋) 因爲我曾經在手冊中設計過代碼,但並不是我喜歡它的方式 – derrs