PHP_Const

PHP_Const

常量 規則:
1 老是大寫
2 A-Z 及 從127~255的ASCII字符
3 全局範圍
4 用define函數定義
5 只能包含標量數據 如Boolean integer float string
6 前面不可加美圓符
php

PHP自帶常量=特殊常量
不區分大小寫
_LINE_        文件中的當前行號
_FILE_        文件的完整路徑+文件名
_FUNCTION_    函數名稱
_CLASS_        類名稱
_METHOD_    類的方法名

_LINE_
php腳本行數 若是引用文件 則在引用文件內的該常量爲被引用文件的行
而非引用文件的行 即向下傳遞

_FILE_
原理同上程序員

 

define部分:
宏不只能夠用來代替常數值,還能夠用來代替表達式,甚至是代碼段。安全

(宏的功能很強大,但也容易出錯,因此其利弊大小很有爭議。)函數


宏的語法爲:
#define 宏名稱 宏值
做爲一種建議和一種廣大程序員共同的習慣,宏名稱常常使用所有大寫的字母。spa


利用宏的優勢:
1)讓代碼更簡潔明瞭
固然,這有賴於你爲宏取一個適當的名字。通常來講,宏的名字更要注重有明確直觀的意義,有時寧肯讓它長點。
2)方便代碼維護
對宏的處理,在編譯過程當中稱爲「預處理」。內存

也就是說在正式編譯前,編譯器必須先將代碼出現的宏,用其相應的宏值替換,這個過程有點像你我在文字處理軟件中的查找替換。因此在代碼中使用宏表達常數,歸根結底仍是使用了當即數,並無明確指定這個量的類型。

const部分
常量定義的格式爲:
const 數據類型 常量名 = 常量值;編譯器

常量必須一開始就指定一個值,而後,在之後的代碼中,咱們不容許改變此常量的值。

二者之間的區別:
1 內存空間的分配上。string

define進行宏定義的時候,不會分配內存空間,編譯時會在main函數裏進行替換,只是單純的替換,不會進行任何檢查,編譯

好比類型,語句結構等,即宏定義常量只是純粹的置放關係,如#define null 0;變量

編譯器在遇到null時老是用0代替null它沒有數據類型(還有疑問請找C語言書籍看預處理部分或者看MSDN.

const定義的常量 具備數據類型,

定義數據類型的常量便於編譯器進行數據檢查,使程序可能出現錯誤進行排查,

因此const與define之間的區別在於

const定義常量排除了程序之間的不安全性.

define定義全局常量,在任何地方均可以訪問

          const用於類成員變量定義,只能用類名訪問不能更改

          要是初學 這樣先理解着 別太鑽牛角尖就行

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息