日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php定义常量 define vs const

發(fā)布時間:2025/5/22 php 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php定义常量 define vs const 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

常量一旦定義就不能在改變或者取消。 在php中定義常量可以使用define()函數(shù),在php5.3之后同樣可以使用const關(guān)鍵字來定義常量。

define 和 const的區(qū)別

語法區(qū)別

// 使用define定義常量 define("Pi",3.14); // 使用const定義常量 const Pi1 = 3.14 復(fù)制代碼

定義時期區(qū)別

define() 在執(zhí)行期定義常量,而 const 在編譯期定義常量。 這就意味著不能在函數(shù)內(nèi),循環(huán)內(nèi)以及 if 語句之內(nèi)用 const 來定義常量。

if( true){define("STEP",1);} => trueif( true ){ const STEP = 1; } PHP Parse error: Syntax error, unexpected T_CONST on line 2 >>> 復(fù)制代碼

命名空間

define() 定義常量在全局根命名空間下面,而const定義的常量會在當(dāng)前的命名空間下面。

>>> 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 >>> 復(fù)制代碼

表達(dá)式

define允許你在常量名和常量值中使用表達(dá)式,const不支持,這使得define很靈活

define('TRANSPORT_METHOD_SNEAKING', 1 << 0); // OK! const TRANSPORT_METHOD_WALKING = 1 << 1; //Compile error! const can't use expressions as values 復(fù)制代碼

類常量

可以把在類中始終保持不變的值使用const定義為常量,define不能在類中定義常量

<?php 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 起 ?> 復(fù)制代碼

原文鏈接 github.com/DanceSmile/…

轉(zhuǎn)載于:https://juejin.im/post/5aa0dec6f265da239f06f141

總結(jié)

以上是生活随笔為你收集整理的php定义常量 define vs const的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。