程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php const與define區別,phpconstdefine

php const與define區別,phpconstdefine

編輯:關於PHP編程

php const與define區別,phpconstdefine


原文地址:http://www.manongjc.com/article/491.html

 

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 = 'constant value';
 
    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
    const a = "abcdef";
    echo a;
?>

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

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

<?php
    if(1){
        const a = 'java';
    }
    echo a;  //必錯
?>

2.const采用一個普通的常量名稱,define可以采用表達式作為名稱

<?php
const  FOO = 'PHP'; 
for ($i = 0; $i < 32; ++$i) { 
    define('PHP_' . $i, 1 << $i); 
} 
?>

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

<?php
const PHP = 1 << 5;    // 錯誤
define('PHP', 1 << 5); // 正確 
?>

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

兩個共同步:兩者都是不能進行重新賦值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved