php const常量修飾符使用方法_PHP教程

來源:互聯網
上載者:User
在php中如果我們要定義常量有很多方法,但在類中我們要定義常量多半會用到const常量修飾符來定義了,下面小編來給各位同學介紹一下操作辦法。

在PHP中定義常量是通過define()函數來完成的,但在類中定義常量不能使用define(),而需要使用const修飾符。類中的常量使用const定義後,其訪問方式和靜態成員類似,都是通過類名或在成員方法中使用self訪問,但在PHP 5.3.0之後也可以使用對象來訪問。被const定義的常量不能重新賦值,如果在程式中試圖改變它的值將會出現錯誤。

代碼如下 複製代碼

class MyClass {

const CONSTANT = 'CONSTANT value' ; //使用const聲明一個常量,並直接賦上初使值

function showConstant() {

echo self ::CONSTANT ."
" ;//使用self訪問常量,注意常量前不要加“$”

}

}

echo MyClass:: CONSTANT . "
" ; //在類外部使用類名稱訪問常量,也不要加”$”

$class = new MyClass();

$class->showConstant();

echo $class ::CONSTANT; // PHP 5.3.0之後

?>

關注細節:使用const定義的常量名稱前不需要使用“$“符號,且常量名稱通常都是大寫的。

試圖為const定義的常量賦值,將會出現錯誤。

代碼如下 複製代碼

class MyClass {

const CONSTANT = 'CONSTANT value' ;

function setCONSTANT(){

self ::CONSTANT = 'news CONSTANT' ;//程式運行結果將會出錯。

}

}

echo MyClass:: CONSTANT ;

?>

程式運行結果將會出錯。


使用const修飾的常量更其它的常量 有點不同的地方就是:常量名前不要使用”$”,切記!當然這個常量值也是不能修改的,一旦定義就不能程式的任何地方進行“人為”的修改。這跟使用 define定義是一樣,還有就是使用const來定義當然也遵守其它常量的命名規則


擴充閱讀:

常量前面沒有貨幣符號($);
常量只能用 define() 函數定義,而不能通過指派陳述式;
常量可以不用理會變數範圍的規則而在任何地方定義和訪問;
常量一旦定義就不能被重新定義或者取消定義;
常量的值只能是標量;
常量只能包含標量資料(boolean,integer,float 和 string),不要定義 resource常量.
可以用函數 constant() 來讀取常量的值.get_defined_constants()可以獲得所有已定義的常量列表.
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字串調用它一樣(CONSTANT 對應 “CONSTANT”),此時將發出一個 E_NOTICE 級的錯誤.
PHP 的“魔術常量”.

名稱

說明

__LINE__

檔案中的當前行號。

__FILE__

檔案的完整路徑和檔案名稱。如果用在包含檔案中,則返回包含檔案名稱。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。

__FUNCTION__

函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__CLASS__

類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__METHOD__

類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。

http://www.bkjia.com/PHPjc/632685.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632685.htmlTechArticle在php中如果我們要定義常量有很多方法,但在類中我們要定義常量多半會用到const常量修飾符來定義了,下面小編來給各位同學介紹一下操作...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.