php const和define的區別(php類中如何定義常量)
大家都知道define是定義常量的,如果在類中定義常量呢?當然不能用define,而用const,如下例:
- <?php
- //在類外面通常這樣定義常量
- define("PHP","phpddt.com");
- classMyClass
- {
- //常量的值將始終保持不變。在定義和使用常量的時候不需要使用$符號
- 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 =newMyClass();
- $class->showConstant();
- echo $class::constant."<br>";// PHP 5.3.0之後
- //print_r(get_defined_constants()); //可以用get_defined_constants()獲取所有定義的常量
- ?>
關於常量的基礎知識,這裡不說了,除了以上,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速度要快的多。
關於php中const和define的區別就總結這麼多了。
相關推薦
php const和define的區別(php類中如何定義常量)
大家都知道define是定義常量的,如果在類中定義常量呢?當然不能用define,而用const,如下例: <?php//在類外面通常這樣定義常量define("PHP","phpddt.com");classMyClass{//常量的值將始終保持不變。在定義和使
const和#define區別
define巨集是在預處理階段展開。const常量是編譯、執行階段使用 巨集沒有型別,不做任何型別檢查,僅僅是展開。const常量有具體的型別,在編譯階段會執行型別檢查 所有的巨集替換隻是簡單的字串替換,注意是字串替換,所以並不會檢查其合法性,而const定義的常量依然是內建型別等,所以會對其進行型別安全檢
const 和 #define區別
(1) 編譯器處理方式不同 define巨集是在預處理階段展開。 const常量是編譯執行階段使用。 (2) 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是展開。 const常量有具體的型別,在編譯階段會執行型別檢查。 (
PHP中const和define()定義常量的細節區別
眾所周知,在PHP中(PHP 4及以後),我們可以使用函式define()來定義常量,例如: <?php define('PI',3.14159);//定義一個名為PI的常量 echo PI;//輸出:3.14159 ?> 不過,在PHP
C++編程中const和#define的區別
程序 存在 pan best color 普通 分配 一次 def (1) 編譯器處理方式不同 define宏是在預處理階段展開。 const常量是編譯運行階段使用。(2) 類型和安全檢查不同 define宏沒有類型,不做任何類型檢查,僅僅是展開。 const常量有
PHP const 與 define的區別
1、const用於類成員變數定義,一旦定義且不能改變其值。define定義全域性常量,在任何地方都可以訪問。 2、define不能在類中定義而const可以。 3、const不能在條件語句中定義常量 if (...) { const FOO = 'BAR';
C++中const和#define的利弊探索
C++學習 C++學習總結 C++靈感 const和#define的利弊,從而推導const的意義; const和#define都有類似的功能,那就是定義一個“常量”; 想用來替換#define定義常量這種方式。這是一種定義宏的方式。因為宏替換定義常量有一定的缺陷:不做類型檢查,沒有作用域限制(這
C語言const和define的區別
一份 安全 font 預處理 tro span ble 展開 區別 const 定義的是變量不是常量,只是這個變量的值不允許改變是常變量!帶有類型。編譯運行的時候起作用存在類型檢查。 define 定義的是不帶類型的常數,只進行簡單的字符替換。在預編譯的時候起作用,不存在類
PHP的"::" "->"和"=>"的區別
1."::" 運演算法 該運算子是呼叫一個類中的靜態成員的方法,如: class xxx{ protected static $instance; self::$instance="111"; 或者 $this::$instance = "222";
php unset和array_splice區別
平時在設計程式時,經常要應用PHP刪除陣列元素的函式有unset和array_splice,這兩個函式的執行有何差異呢? 用unset,有個缺陷.如$a是一個數組: < ?php $a=array("red", "green", "blue", "yellow"); count($a);
const關鍵字以及const和#define的區別
1.const - 1.const修飾變數、引數、返回值: 在C++中const修飾變數,使變數變成常量,在宣告的同時必須初始化;C++的const修 飾的全域性變數可以作為屬組的初始化的大小,而C不可以,同時變數的值不能被修改;C++利用const的這一屬性,代替C中的
strlen和mb_strlen區別(php獲得中英文混合字元長度)
<?php//測試時檔案的編碼方式要是UTF8$str='中文a字1符';echo strlen($str).'<br>';//14echo mb_strlen($str,'utf8').'<br>';//6echo mb_strlen($str
const和define的差別
問題 高程 編譯器 參數 fine 返回值 安全檢查 clu 類型安全 1、const有什麽用途?(1)可以定義const常量(2)const可以修飾函數的參數和返回值,甚至函數的定義體。被const修飾的東西都受到強制保護,可以預防以外的變動,能提高程序的健壯性。
PHP中定義常量
amp ech spa family pub -s col div new PHP中定義常量的方式如下: define(常量名,常量值); //定義常量PUBLISHER define(‘PUBLISHER‘, "O‘Reilly & Associates");
print和println預設呼叫類中的public String toString(){return "***"} 分析
先看下來自mindview的一段程式碼: package reusing; //: reusing/Bath.java // Constructor initialization with composit
c++的const和static區別
const定義的常量在超出其作用域之後其空間會被釋放,而static定義的靜態常量在函式執行後不會釋放其儲存空間。 static表示的是靜態的。類的靜態成員函式、靜態成員變數是和類相關的,而不是和類的具體物件相關的。即使沒有具體物件,也能呼叫類的靜態成員函式和成員變數。一般
java中定義常量和C#中定義常量的區別
一、常量定義的基本注意事項。 在Java語言中,主要是利用final關鍵字()來定義常量。當常量被設定後,一般情況下就不允許再進行更改。如可以利用如下的形式來定義一個常量:final double PI=3.1315。在定義這個常量時,需要注意如下內容: 一是常
wait()、notify()和notifyAll()是 Object類 中的方法
從這三個方法的文字描述可以知道以下幾點資訊: 1)wait()、notify()和notifyAll()方法是本地方法,並且為final方法,無法被重寫。 2)呼叫某個物件的wait()方法能讓當前執行緒阻塞,並且當前執行緒必須擁有此物件的monitor(即鎖) 3)呼叫某個物件的notify()方
【Spring原始碼解讀】BeanFactory和FactoryBean區別及類裝載原始碼解讀
最近讀程式碼讀到Bean裝載過程,順帶上網搜了下BeanFactory和FactoryBean,發現好多文章都講的不清不楚,特此自己來整理了一份BeanFactory和FactoryBean的區別及講下bean的裝載和讀取過程的原始碼. 首先來
在類中定義遞歸方法
聲明 this 調用函數 urn for 數組 eve 函數 調用 public function getTree($list,$pid,$level){ //此處須是靜態數組,不然遞歸的時候每次都會聲明一個新的數組 static $tree = [];