相同點:兩者都能定義常量
const foo =『bar『;
defind(『foo『,『bar『);
–
const
defind
1(位置) 必須宣告在top-level-scopc (頂級域)
無限制2
(表示式) 接受乙個靜態的標量型別(number,string,true.false,null,file,……)
接受任何表示式
3(常量名)接受乙個plain(?不知道翻譯成啥,就是常量名稱固定的意思)常量名
接受任何表示式作為常量名
4(常量名)區別大小寫
允許不區別大小寫(第三個引數傳遞true
// 1
if(condition) const foo =『bar『; //未定義
if(condition) defind(『foo『,『bar『); //定義
if (!defined(『foo『)) define
(『foo『, 『bar『);
// 2
const bit_5 =
1<<
5; // php 5.6之後 valid ,之前 invalid
define
(『bit_5『, 1
<<
5); // always valid
// 3
for ($i
=0; $i
<
32; ++
$i)
// 4
define
(『foo『,『bar『,true);
1. 易讀。是乙個語言結構,不是乙個方法,也可以在類中使用定義常量。
2. 可以在當前命名空間定義常量,但是define()必須傳遞完整的命名空間名稱。
(乙個可以是相對的,乙個必須是絕對的)
namespace a\b
\c;// to define the constant a\b
\c\foo:
const foo = 『bar『;
define(『a\b
\c\foo『, 『bar『);
3. 定義常量值可以使用陣列,const(php 5.6 後),defind(php 7後)
const foo = [1, 2, 3]; // valid in
php5.6
define(『foo『, [1, 2, 3]); // invalid in
php5.6, valid in
php7.0
4. const 比 defind 快 : const(語言結構)定義於編譯時,defind定義於執行時
5. 類中定義常量, const可以,defind不支援
class
foo
// but
class
baz
php const和define的區別
大家都知道define是定義常量的,如果在類中定義常量呢?當然不能用define,而用const,如下例 php 在類外面通常這樣定義常量 define php phpddt.com class myclass echo myclass constant classname myclass echo...
php const和define的區別
1 const用於類成員變數的定義,一經定義,不可修改。define不可用於類成員變數的定義,可用於全域性常量。2 const可在類中使用,php5.3以後類外邊也可以,define不能。class test function a t new test t a 輸出 notice use of un...
和 區別和聯絡, 和 區別和聯絡
和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...