php定义常量 define vs const
生活随笔
收集整理的這篇文章主要介紹了
php定义常量 define vs const
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
常量一旦定義就不能在改變或者取消。 在php中定義常量可以使用define()函數,在php5.3之后同樣可以使用const關鍵字來定義常量。
define 和 const的區別
語法區別
// 使用define定義常量 define("Pi",3.14); // 使用const定義常量 const Pi1 = 3.14 復制代碼定義時期區別
define() 在執行期定義常量,而 const 在編譯期定義常量。 這就意味著不能在函數內,循環內以及 if 語句之內用 const 來定義常量。
if( true){define("STEP",1);} => trueif( true ){ const STEP = 1; } PHP Parse error: Syntax error, unexpected T_CONST on line 2 >>> 復制代碼命名空間
define() 定義常量在全局根命名空間下面,而const定義的常量會在當前的命名空間下面。
>>> namespace Test; >>> define("TEST","test"); => true >>> echo \Test\TEST; PHP Fatal error: Undefined constant Test\TEST in eval()'d code on line 1 >>> echo \TEST; test? >>> const TEST1 = "test"; >>> echo \Test\TEST1 test? >>> echo \TEST1 PHP Error: Undefined constant 'TEST1' on line 3 >>> 復制代碼表達式
define允許你在常量名和常量值中使用表達式,const不支持,這使得define很靈活
define('TRANSPORT_METHOD_SNEAKING', 1 << 0); // OK! const TRANSPORT_METHOD_WALKING = 1 << 1; //Compile error! const can't use expressions as values 復制代碼類常量
可以把在類中始終保持不變的值使用const定義為常量,define不能在類中定義常量
class MyClass {const constant = 'constant value';function showConstant() {echo self::constant . "\n";} }echo MyClass::constant . "\n";$classname = "MyClass"; echo $classname::constant . "\n"; // 自 5.3.0 起$class = new MyClass(); $class->showConstant();echo $class::constant."\n"; // 自 PHP 5.3.0 起 復制代碼原文鏈接 github.com/DanceSmile/…
轉載于:https://juejin.im/post/5aa0dec6f265da239f06f141
總結
以上是生活随笔為你收集整理的php定义常量 define vs const的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言-数据数据类型、变量与常量
- 下一篇: windows下捕获dump