大家都知道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語言的預處理主要有三個方面的內容 巨集定義 檔案包含 條件編譯。預處理命令以符號 開頭。預處理命令總是占用源 中的單獨一行,並且總是以 字...