首頁 php教程 php手册 深入分析PHP const与define使用区别

深入分析PHP const与define使用区别

May 23, 2016 pm 01:07 PM
const

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 = &#39;constant value&#39;; 
	 
	    function showConstant() { 
	        echo  self::constant . "<br>"; 
	    } 
	} 
	 
	echo MyClass::constant . "<br>"; 
	 
	$classname = "MyClass"; 
	echo $classname::constant . "<br>"; // PHP 5.3.0之后 
	 
	$class = new MyClass(); 
	$class->showConstant(); 
	echo $class::constant."<br>"; // PHP 5.3.0之后 
	//print_r(get_defined_constants());  //可以用get_defined_constants()获取所有定义的常量 
	 
登入後複製

一般是define在类外定义常量,const在类内定义常量,并且const必须通过类名::变量名来进行访问,但是php5.3以上支持类外通过const定义常量,看如下,这样是ok的:

<?php 
	    //@blog<http://www.phprm.com> 
	    const a = "abcdef"; 
	    echo a; 
	 
登入後複製

关于常量的基础知识,这里不说了,除了以上,define和const的其它区别(摘自网络).

1.const不能再条件语句中定义常量,但是define是可以的,如下:

<?php 
	    if(1){ 
	        const a = &#39;java&#39;; 
	    } 
	    echo a;  //必错 
	 
登入後複製

2.const采用一个普通的常量名称,define可以采用表达式作为名称,代码如下:

<?php 
	const  FOO = &#39;PHP&#39;;  
	 
	for ($i = 0; $i < 32; ++$i) {  
	    define(&#39;PHP_&#39; . $i, 1 << $i);  
	}  
	 
登入後複製

3.const只能接受静态的标量,而define可以采用任何表达式,代码如下:

<?php 
	const PHP = 1 << 5;    // 错误 
	define(&#39;PHP&#39;, 1 << 5); // 正确  
	 
登入後複製

4.const本身就是一个语言结构,而define是一个函数,所以使用const速度要快的多.

两个共同步:两者都是不能进行重新赋值.

教程网址:

欢迎收藏∩_∩但请保留本文链接。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
深入理解C語言中的const 深入理解C語言中的const Feb 18, 2024 pm 12:56 PM

C中const的詳解及程式碼範例在C語言中,const關鍵字用來定義常數,表示該變數的值在程式執行過程中不能被修改。 const關鍵字可以用來修飾變數、函數參數、函數傳回值。本文將對C語言中const關鍵字的使用進行詳細解析,並提供具體的程式碼範例。 const修飾變數當const用來修飾變數時,表示變數為唯讀變量,一旦賦值就無法再修改。例如:constint

C++ 函式const關鍵字的正確用法有哪些? C++ 函式const關鍵字的正確用法有哪些? Apr 11, 2024 pm 02:36 PM

C++中const關鍵字的正確用法:使用const修飾函數,表示函數不會修改傳入的參數或類別成員。使用const宣告函數指針,表示該指針指向常數函數。

C++語法錯誤:必須在定義時初始化const對象,改怎麼處理? C++語法錯誤:必須在定義時初始化const對象,改怎麼處理? Aug 22, 2023 am 09:13 AM

對C++程式設計師來說,語法錯誤是極為常見的問題之一。其中一個常見錯誤是必須在定義時初始化const物件。如果你遇到了這種情況,該怎麼處理呢?首先,我們要了解什麼是const物件。 const關鍵字是C++中的一種特殊型別限定符,用來指定變數的值無法在程式的執行期間被改變。這種變數稱為「常量」。如果在定義const物件時沒有初始化它,你將會遇到上述錯誤。這是

在 Windows 11 上修復音訊服務無回應問題的 18 種方法 在 Windows 11 上修復音訊服務無回應問題的 18 種方法 Jun 05, 2023 pm 10:23 PM

音訊輸出和輸入需要特定的驅動程式和服務才能在Windows11上按預期工作。這些有時最終會在後台遇到錯誤,從而導致音訊問題,如無音訊輸出、缺少音訊設備、音訊失真等。如何修復在Windows11上沒有回應的音訊服務我們建議您從下面提到的修復開始,並逐步完成列表,直到您設法解決您的問題。由於Windows11上的多種原因,音訊服務可能無法回應。此清單將幫助您驗證和修復阻止音訊服務在Windows11上回應的大多數問題。請按照以下相關部分幫助您完成流程。方法一:重啟音訊服務您可能會遇

一起聊聊var、let以及const的差異(程式碼範例) 一起聊聊var、let以及const的差異(程式碼範例) Jan 06, 2023 pm 04:25 PM

這篇文章為大家帶來了關於JavaScript的相關知識,其中主要為大家介紹了var、let以及const的區別有哪些,還有ECMAScript 和JavaScript的關係介紹,有興趣的朋友一起來看一下吧,希望對大家有幫助。

c語言const怎麼用 c語言const怎麼用 Sep 20, 2023 pm 01:34 PM

const是關鍵字,可以用來宣告常數、函數參數中的const修飾符、const修飾函數傳回值、const修飾指標。詳細介紹:1、聲明常數,const關鍵字可用於聲明常數,常數的值在程式運作期間不可修改,常數可以是基本資料類型,如整數、浮點數、字元等,也可是自訂的資料型別; 2.函數參數中的const修飾符,const關鍵字可用於函數的參數中,表示該參數在函數內部不可修改等等。

C++報錯:不能將const對象轉換為非const對象,該怎麼解決? C++報錯:不能將const對象轉換為非const對象,該怎麼解決? Aug 22, 2023 am 08:33 AM

C++作為一種強型別語言,在進行型別轉換時需要考慮很多細節,其中常見的問題就是無法將const物件轉換為非const物件。尤其在涉及指標和引用時,這個問題更為常見。接下來,我們將詳細介紹這個問題的原因和解決方法。問題的原因C++中的const關鍵字用來定義常數,常數一旦定義後就不能再被修改。當我們將const物件轉換為非const物件時,實際上是試圖修改一

C++語法錯誤:const修飾的成員函式必須宣告const成員,怎麼處理? C++語法錯誤:const修飾的成員函式必須宣告const成員,怎麼處理? Aug 22, 2023 pm 01:51 PM

C++語法錯誤:const修飾的成員函式必須宣告const成員,怎麼處理?在C++語言中,const是一個很重要的關鍵字,它用來修飾某些變數、指標、成員函式等。對於成員函數而言,如果它被const關鍵字修飾,那麼在函數體內部就不能修改成員變數的值了。但是,如果我們沒有在函數宣告和定義中都加上const關鍵字,就會遇到編譯錯誤「const修飾的成員函式必須聲

See all articles