導航:首頁 > 編程語言 > php中define

php中define

發布時間:2022-06-20 17:54:26

A. php define和const的區別

眾所周知,在PHP中(PHP 4及以後),我們可以使用函數define()來定義常量,例如:
<?php

define('PI', 3.14159); //定義一個名為PI的常量

echo PI; //輸出:3.14159

?>
不過,在PHP 5.3.0之後,除了使用函數define()之外,我們還可以使用PHP關鍵字const來定義常量。
例如:
<?php

//以下代碼需在PHP 5.3.0及之後的版本中運行

const PI = 3.14159; //使用const關鍵字定義一個名為PI的常量

echo PI; //輸出:3.14159

?>
雖然上述兩種方式均可以定義常量,但是它們之間有什麼不同之處呢。下面我們來一一講解PHP中define()函數和const關鍵字定義常量的區別:
1.版本差異
首先,毫無疑問的是,兩種定義常量的方式之間存在版本差異,函數define()在PHP4和PHP5中均可使用,關鍵字const只能在PHP 5.3.0及其後的版本中使用。
2.定義位置的區別
由於函數define()定義的常量是在執行define()函數時定義的,因此可以在函數內、循環內、if語句內等函數能夠被調用的任何地方使用define()函數定義常量。與define()不同的是,由於const關鍵字定義的常量是在編譯時定義的,因此const關鍵字定義常量必須處於最頂端的作用區域。這也就意味著不能在函數內、循環內以及if語句之內用const來定義常量。
<?php

//使用const關鍵字定義常量必須處於最頂端的作用區域

//也就是可以在編譯時直接解析定義的地方

const DEMO = 'DEMO';

class Person{

const MAN = '男';

const WOMAN = '女';

}

interface USB{

const VERSION_2 = '2.0';

const VERSION_3 = '3.0';

}

?>
3.對值的表達式支持的差異
雖然關鍵字const和define()定義的常量值都只能為null或標量數據(boolean,integer,float和string類型)以及resource類型(不推薦定義resource類型的常量,否則可能出現無法預知的結果)。不過,由於關鍵字const定義常量是在編譯時定義的,因此const關鍵字定義的常量值的表達式中不支持算術運算符、位運算符、比較運算符等多種運算符,而這些運算符在define()函數定義常量時都是可以直接使用的。
<?php

define('DEFINE_VAR1', 1 << 1);

//const CONST_VAR1 = (1 << 1); //const不支持位運算符,PHP會報語法錯誤

define('DEFINE_VAR2', 1 + 1);

//const CONST_VAR2 = 1 + 1 ; //const不支持算術運算符,PHP會報語法錯誤

define('DEFINE_VAR3', 1 == 1);

//const CONST_VAR3 = 1 == 1 ; //const不支持比較運算符,PHP會報語法錯誤

$value = 3;

define('DEFINE_VAR4', $value);

//const CONST_VAR4 = $value ; //const不支持變數形式的值,PHP會報語法錯誤

define('DEFINE_VAR5', true || false);

//const CONST_VAR5 = true || false ; //const不支持邏輯運算符,PHP會報語法錯誤

define('DEFINE_VAR6', 'Hello'.' World!');

//const CONST_VAR6 = 'Hello'.' World!' ; //const不支持字元串運算符,PHP會報語法錯誤

class User{

}$user = new User();define('DEFINE_VAR7', $user instanceof User);

//const CONST_VAR7 = $user instanceof User ; //const不支持類型運算符,PHP會報語法錯誤

?>
4.對字元大小寫敏感的支持差異
除上述3個區別外,還有一個不太起眼的區別。函數define()可以接收第3個參數,如果該參數為true,則表示常量名的大小寫不敏感。而使用const關鍵字定義常量卻沒有提供類似的功能。
<?php

//設置編碼為UTF-8,以避免中文亂碼

header('Content-Type:text/html;charset=utf-8');

//define()的第3個參數為true時,表示大小寫不敏感

define('SITE_NAME', 'CodePlayer', true);

echo SITE_NAME; //輸出:CodePlayer

echo site_name; //輸出:CodePlayer

echo SiTe_NamE; //輸出:CodePlayer

const DOMAIN_NAME = '365mini.com';

echo DOMAIN_NAME; //輸出:365mini.com

echo domain_name; //PHP提示常量未定義

echo DomaIN_nAMe; //PHP提示常量未定義

?>

B. PHP中define和defined的區別及用法

用法:

define("GREETING","Hello world!");

echo defined("GREETING")。

區別:

一、指代不同

1、define:函數定義一個常量。

2、defined:函數檢查某常量是否存在。

二、功能不同

1、define:在設定以後,常量的值無法更改,常量名不需要開頭的美元符號 ($)。

2、defined:若常量存在,則返回 true,否則返回 false。


三、用處不同

1、define:defined(name),必需。規定要檢查的常量的名稱。

2、defined:define(name,value,case_insensitive)可選。規定常量的名稱是否對大小寫敏感。

若設置為 true,則對大小寫不敏感。默認是 false(大小寫敏感)。


C. define(ALL_PS,"") 在編輯php中是做什麼用的

define(ALL_PS,"")設置常量ALL_PS的值為空

define用於設置常量,詳細用法如下:

define — 定義一個常量

booldefine(string$name,mixed$value[,bool$case_insensitive=false])

在運行時定義一個常量。

參數:

name:常量名。

value:常量的值;僅允許標量和 null。標量的類型是 integer,float,string 或者 boolean。也能夠定義常量值的類型為 resource ,但並不推薦這么做,可能會導致未知狀況的發生。

case_insensitive:如果設置為 TRUE,該常量則大小寫不敏感。默認是大小寫敏感的。比如,CONSTANT 和 Constant 代表了不同的值。

返回值:

成功時返回 TRUE, 或者在失敗時返回 FALSE。

D. PHP中define和defined的區別和一些判斷定義

define — 定義一個常量
define("CONSTANT", "Hello world.");
defined — 檢查某個名稱的常量是否存在
if (defined('TEST')) {
echo TEST;
}

E. PHP中define是啥意思

define是php里定義常量用的。
第一個參數是常量名,第二個是常量的值。

你在研究ecshop吧,呵,裡面經常用到。它定義這個常量的作用是防止被引用文件的非法載入,你會發現在另一甫紶顛咳郯糾奠穴訂膜個地方會有:
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
它的意思是檢測是否存IN_ECS這個常量,不存在的話停止運行腳本,並顯示'Hacking attempt'(非法攻擊)

額外的解釋,多加分哦

F. php中const與define的使用區別 詳解

1.const:類成員變數定義,一旦定義且不能改變其值.
define:定義全局常量,在任何地方都可以訪問.

2.define:不能在類中定義,而const可以.

3.const:不能在條件語句中定義常量.

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

5.const:只能接受靜態的標量,而define可以採用任何錶達式.

6.const:大小寫敏感.

G. php中兩個define怎麼使用defined ( '' ) || define ( '', '')

defined('APP_PATH') || define('APP_PATH', './apps/');
如果常量APP_PATH已定義,則使用已定義的常量值,否則定義APP_PATH常量的值為./apps/字元串。

defined 判斷常量是否已定義,返回Bool值。
define 定義常量

這條語句利用了||(或邏輯)的短路特性,即前一個為true值,則後一個不會被執行。

H. php中const和define的區別

define部分:
宏不僅可以用來代替常數值,還可以用來代替表達式,甚至是代碼段。(宏的功能很強大,但也容易出錯,所以其利弊大小頗有爭議。)

宏的語法為:

#define 宏名稱 宏值
作為一種建議和一種廣大程序員共同的習慣,宏名稱經常使用全部大寫的字母。

利用宏的優點:

1)讓代碼更簡潔明了

當然,這有賴於你為宏取一個適當的名字。一般來說,宏的名字更要注重有明確直觀的意義,有時寧可讓它長點。

2)方便代碼維護

對宏的處理,在編譯過程中稱為「預處理」。也就是說在正式編譯前,編譯器必須先將代碼出現的宏,用其相應的宏值替換,這個過程有點你我在文字處理軟體中的查找替換。所以在代碼中使用宏表達常數,歸根結底還是使用了立即數,並沒有明確指定這個量的類型。

const部分

常量定義的格式為:

const 數據類型 常量名 = 常量值;
而const定義的常量具有數據類型,定義數據類型的常量便於編譯器進行數據檢查,使程序可能出現錯誤進行排查。常量必須一開始就指定一個值,然後,在以後的代碼中,我們不允許改變此常量的值。

兩者之間的區別:
內存空間的分配上。define進行宏定義的時候,不會分配內存空間,編譯時會在main函數里進行替換,只是單純的替換,不會進行任何檢查,比如類型,語句結構等,即宏定義常量只是純粹的置放關系,如#define null 0;編譯器在遇到null時總是用0代替null它沒有數據類型(還有疑問請找C語言書籍看預處理部分或者看MSDN.而const定義的常量具有數據類型,定義數據類型的常量便於編譯器進行數據檢查,使程序可能出現錯誤進行排查,所以const與define之間的區別在於const定義常量排除了程序之間的不安全性.

I. php中define裡面填什麼參數

函數原型:

booldefine(string$name,mixed$value[,bool$case_insensitive=false])

參數:

name:常量名。

value:常量的值;(僅允許標量和null。標量的類型是integer,float,string或者boolean。也能夠定義常量值的類型為resource,但並不推薦這么做,可能會導致未知狀況的發生。

case_insensitive:如果設置為TRUE,該常量則大小寫不敏感。默認是大小寫敏感的。比如,CONSTANT和Constant代表了不同的值。


返回值:

成功時返回TRUE,或者在失敗時返回FALSE。


案例:

define("CONSTANT","Helloworld.");
echoCONSTANT;//outputs"Helloworld."
echoConstant;//outputs"Constant"andissuesanotice.

define("GREETING","Helloyou.",true);
echoGREETING;//outputs"Helloyou."
echoGreeting;//outputs"Helloyou."

J. PHP中define函數是有什麼用的

PHP預先定義了幾個常量,並提供了一種機制在運行時自己定義。常量和變數基本上是一樣的,不同的是:常量必須用DEFINE函數定義,常量一旦定義好,就不能被重新定義了。

PHP中預先定義好的常量:

__FILE__

當前正在處理的腳本文件名。如果使用在一個被包含的文件中,那麼它的值就是這個被包含的文件,而不是包含它的文件名。

__LINE__

正在處理的文件的當前行數。

PHP_VERSION

表示PHP處理器的當前版本,如:'3.0.8-dev'。

PHP_OS

PHP處理器所在的操作系統名字,如:'Linux'。

TRUE

真值

FALSE

假值

可以用DEFINE函數定義更多的常量。

如,定義常量:

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?>
用 __FILE__ 和 __LINE__ 的舉例

<?php
function report_error($file, $line, $message) {
echo "An error occured in $file on line $line: $message.";
}
report_error(__FILE__,__LINE__, "Something went wrong!");
?>

閱讀全文

與php中define相關的資料

熱點內容
不會數學英語如何編程 瀏覽:88
如何能知道網站伺服器地址 瀏覽:648
程序員月薪5萬難嗎 瀏覽:138
如何評價程序員 瀏覽:802
雲虛機和伺服器的區別 瀏覽:403
廣西柳州壓縮機廠 瀏覽:639
arm開發編譯器 瀏覽:833
51單片機的核心 瀏覽:746
看電視直播是哪個app 瀏覽:958
將c源程序編譯成目標文件 瀏覽:787
再要你命3000pdf 瀏覽:558
ai軟體解壓軟體怎麼解壓 瀏覽:520
文件夾怎樣設置序列號 瀏覽:963
javascriptgzip壓縮 瀏覽:248
易語言怎麼取出文件夾 瀏覽:819
蘋果xs手機加密app哪裡設置 瀏覽:605
超聲霧化器與壓縮霧化器 瀏覽:643
模擬實現進程調度演算法 瀏覽:388
現在的壓縮包都是加密 瀏覽:331
施工員找工作去哪個app 瀏覽:632