php const和define的區別

2021-07-10 08:53:26 字數 1542 閱讀 5320

大家都知道define是定義常量的,如果在類中定義常量呢?當然不能用define,而用const,如下例:

<?

php//在類外面通常這樣定義常量

define

("php"

,"phpddt.com"

);class

myclass

}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//@blog

consta =

"abcdef"

;echo a

;?>

關於常量的基礎知識,這裡不說了,除了以上,define和const的其它區別(摘自網路):

1.const不能再條件語句中定義常量,但是define是可以的,如下:

<?

phpif(1

)echo a

;//必錯

?>

2.const採用乙個普通的常量名稱,define可以採用表示式作為名稱

<?

phpconst

foo

='php'

;for

($i =0

;$i

<32;

++$i

)?>

3.const只能接受靜態的標量,而define可以採用任何表示式。

<?

phpconst

php =1

<<5;

// 錯誤

define

('php',1

<<5);

// 正確

?>

4.const本身就是乙個語言結構。而define是乙個函式。所以使用const速度要快的多。

關於php中const和define的區別就總結這麼多了。

尊重他人勞動成果就是尊重自己!

php const和define的區別

1 const用於類成員變數的定義,一經定義,不可修改。define不可用於類成員變數的定義,可用於全域性常量。2 const可在類中使用,php5.3以後類外邊也可以,define不能。class test function a t new test t a 輸出 notice use of un...

PHP const 和 defind 的區別

相同點 兩者都能定義常量 const foo bar defind foo bar const defind 1 位置 必須宣告在top level scopc 頂級域 無限制2 表示式 接受乙個靜態的標量型別 number,string,true.false,null,file,接受任何表示式 3...

預處理和 define

目錄前言 預處理 define 巨集的優缺點 巨集的優點 巨集的缺點 既然要談預處理,那麼肯定得知道預處理是什麼?程式語言的預處理的概念 在編譯之前進行的處理。c語言的預處理主要有三個方面的內容 巨集定義 檔案包含 條件編譯。預處理命令以符號 開頭。預處理命令總是占用源 中的單獨一行,並且總是以 字...