const變量經常被當做常量用在php的類中,隱含的意思是這個變量是常量,不能被修改。編譯器會自動檢測,如果被賦值會被提示錯誤警告。
正確實例1:
<?php class test {const ERRNO = 100; } echo test::ERRNO."\n";
輸出:
100
錯誤示范1:const常量被賦值,編譯器提示錯誤
<?php class test {const ERRNO = 100; } test::ERRNO = 10; echo test::ERRNO."\n";
輸出:
PHP Parse error: syntax error, unexpected '='
錯誤示范2:const常量被當做變量來定義
<?php class test {const $ERRNO = 100; }
輸出:
PHP Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING
錯誤示范3:const常量被賦值為數組型
<?php class test {const ERRNO = array(100); }
輸出:
PHP Fatal error: Arrays are not allowed in class constants
?至于為什么const常量不能被定義為array數組型?
php官方文檔給出的解釋是,盡管這有可能實現,但會產生一些未知的風險和結果,所以不推薦。支持的類型為標量類型(scalar data:(boolean, integer, float and string))
更多細節參考:http://www.php.net/manual/en/language.constants.syntax.php