php const與define區別,phpconstdefine
原文地址:http://www.manongjc.com/article/491.html
const是用於類成員常量的定義了,定義之後不可改,而define我們定義的是全域常量了, 這樣我們在其它地方訪問但不能改變了,具體還有一些細節我們下面給各位列出來吧
注意:define不能定義在類中,而const必須定義在類中,並且const必須通過類名::變數名來進行訪問
1、const用於類成員變數定義,一旦定義且不能改變其值。define定義全域常量,在任何地方都可以訪問。
2、define不能在類中定義而const可以。
3、const不能在條件陳述式中定義常量
4、const採用一個普通的常量名稱,define可以採用運算式作為名稱。
5、const只能接受靜態標量,而define可以採用任何錶達式。
6、const 總是大小寫敏感,然而define()可以通過第三個參數來定義大小寫不敏感的常量
7.使用const簡單易讀,它本身是一個語言結構,而define是一個方法,用const定義在編譯時間比define快很多。
define是定義常量的,如果在類中定義常量呢?當然不能用define,而用const,如下例:
php//在類外面通常這樣定義常量define("PHP","111cn.net");class MyClass{ //常量的值將始終保持不變。在定義和使用常量的時候不需要使用$符號 const constant = 'constant value'; function showConstant() { echo self::constant . "
"; }} echo MyClass::constant . "
"; $classname = "MyClass";echo $classname::constant . "
"; // PHP 5.3.0之後 $class = new MyClass();$class->showConstant();echo $class::constant."
"; // PHP 5.3.0之後//print_r(get_defined_constants()); //可以用get_defined_constants()擷取所有定義的常量?>
一般是define在類外定義常量,const在類內定義常量,並且const必須通過類名::變數名來進行訪問。但是php5.3以上支援類外通過const定義常量,看如下,這樣是ok的:
php const a = "abcdef"; echo a;?>
關於常量的基礎知識,這裡不說了,除了以上,define和const的其它區別(摘自網路):
1.const不能再條件陳述式中定義常量,但是define是可以的,如下:
php if(1){ const a = 'java'; } echo a; //必錯?>
2.const採用一個普通的常量名稱,define可以採用運算式作為名稱
phpconst FOO = 'PHP'; for ($i = 0; $i < 32; ++$i) { define('PHP_' . $i, 1 << $i); } ?>
3.const只能接受靜態標量,而define可以採用任何錶達式。
phpconst PHP = 1 << 5; // 錯誤define('PHP', 1 << 5); // 正確 ?>
4.const本身就是一個語言結構。而define是一個函數。所以使用const速度要快的多。
兩個共同步:兩者都是不能進行重新賦值。
http://www.bkjia.com/PHPjc/1102851.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1102851.htmlTechArticlephp const與define區別,phpconstdefine 原文地址:http://www.manongjc.com/article/491.html const是用於類成員常量的定義了,定義之後不可改,而define我們定...