㈠ php如何添加預定義常量或變數
常量使用define語句定義即可
全局變數可以定義到全局變數數組$GLOBALS中
參考手冊 : http://php.net/manual/zh/rese...
看題主的問法,感覺"環境變數"可能符合題主要求
nginx配置PHP server的時候可以增加以下指令
fastcgi_param CUSTOM_ENV_VAR "my_env_value";
之後只要是通過nginx訪問的PHP請求,在任何代碼中中使用 $_SERVER['CUSTOM_ENV_VAR'] 就能取到你需要的值
又或者在fastcgi的配置文件中增加一行:
env[CUSTOM_ENV_VAR]="my_env_value"
之後只要是php-fastcgi處理的PHP文件,都可以通過 getenv('CUSTOM_ENV_VAR'); 來獲取設置的值
如果題主確實打算不親自define而要得到類似E_ALL那樣的常量的話,就需要寫點C了
題主可以新建一個自己的擴展(或者直接隨便找個你會編譯的擴展也行),在PHP_MINIT_FUNCTION中使用以下宏來定義自己的常量
REGISTER_STRINGL_CONSTANT("MY_SITE_VERSION", "1.0", 3, CONST_PERSISTENT);
之後重新編譯PHP即可.
㈡ PHP中怎麼聲明一個常量
常量顧名思義是不能修改的,定義的時候就要賦值而且不要加$。兩種定義方法
1.define("TAX_RATE",1);
2.const TAX_RATE=1 ; 第二種只適用於PHP5.3以上的版本。
㈢ 如何在PHP中使用常量指定PI的值計算圓的面積
實例說明
常量是PHP編程基礎的重要組成部分,其作用是定義一個不會改變的值。本實例通過計算圓的面積向用戶說明常量是如何定義和使用的,運行結果如下:
半徑為10個單元的圓的面積314.15926
關鍵技術
PHP中通常使用define()函數來定義常量;使用constant()函數動態獲取常量值;使用defined()函數判斷一個常量是否已經定義;使用get_defined_constants()函數獲取所有當前已經定義的常量。其中,define()函數的語法如下所示:
define():定義常量。
bool define(string name,mixed value[,bool case_insensitive]);
參數說明:
string name: 必選參數,常量名稱,即標識符。
mixed value:必選參數,常量的值。
bool case_insensitive:可選參數,指定大小寫是否敏感。設定為true,表示不敏感。
設計過程
(1)創建PHP腳本文件,首先通過define()函數定義常量,將數值「3.1415926」定義為常量名為PI的常量,然後定義數值型變數,將圓的半徑設定為10個單位。最後通過echo語句輸出圓的面積,其代碼如下:
<?php
define("PI,3.1415926") //定義常量
$r=10; //定義圓半徑
echo"半徑為10個單位的圓的面積".PI*($r*$r); //定義圓面積
?>
(2)將該文件存儲於\MR\02\044\文件夾下,命名為index.php.
秘笈心法
心法領悟044:使用define()定義常量的注意事項。
使用define()定義的常量一旦定義就不能改變或者取消。
㈣ 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(大小寫敏感)。
㈤ php可以定義數組的常量嗎
不可以。
常量只能包含標量數據(boolean,integer,float 和 string)。可以定義 resource 常量,但應盡量避免,因為會造成不可預料的結果。
更詳細的說明,請參考php手冊的常量部分內容網頁鏈接
㈥ php能定義數組為類的常量嗎
可以。
在PHP中,我們不能用const直接定義數組常量,但是const可以定義字元串常量,結合eval()函數使字元串常量能執行。所以,我們可以用定義字元串常量的方式來返回一個數組常量。
<?php
class Test
{
const MY_ARR="return array(\"a\",\"b\",\"c\",\"d\");";
public function getConstArray()
{
return eval(Test::MY_ARR);//eval()函數把字元串作為PHP代碼執行
}
}
$t=new Test();
print_r($t->getConstArray());
?>
㈦ php如何定義一個常量數組
<?php
constARR=['a','b'];
var_mp(ARR);
php版本要>=5.6才能使用,如果是5.6以下版本可以考慮把數組序列化後賦值給常量
㈧ php中const和define的區別
define部分:
宏不僅可以用來代替常數值,還可以用來代替表達式,甚至是代碼段。(宏的功能很強大,但也容易出錯,所以其利弊大小頗有爭議。)
宏的語法為:
#define 宏名稱 宏值
作為一種建議和一種廣大程序員共同的習慣,宏名稱經常使用全部大寫的字母。
利用宏的優點:
1)讓代碼更簡潔明了
當然,這有賴於你為宏取一個適當的名字。一般來說,宏的名字更要注重有明確直觀的意義,有時寧可讓它長點。
2)方便代碼維護
對宏的處理,在編譯過程中稱為「預處理」。也就是說在正式編譯前,編譯器必須先將代碼出現的宏,用其相應的宏值替換,這個過程有點你我在文字處理軟體中的查找替換。所以在代碼中使用宏表達常數,歸根結底還是使用了立即數,並沒有明確指定這個量的類型。
const部分
常量定義的格式為:
const 數據類型 常量名 = 常量值;
而const定義的常量具有數據類型,定義數據類型的常量便於編譯器進行數據檢查,使程序可能出現錯誤進行排查。常量必須一開始就指定一個值,然後,在以後的代碼中,我們不允許改變此常量的值。
兩者之間的區別:
內存空間的分配上。define進行宏定義的時候,不會分配內存空間,編譯時會在main函數里進行替換,只是單純的替換,不會進行任何檢查,比如類型,語句結構等,即宏定義常量只是純粹的置放關系,如#define null 0;編譯器在遇到null時總是用0代替null它沒有數據類型(還有疑問請找C語言書籍看預處理部分或者看MSDN.而const定義的常量具有數據類型,定義數據類型的常量便於編譯器進行數據檢查,使程序可能出現錯誤進行排查,所以const與define之間的區別在於const定義常量排除了程序之間的不安全性.
㈨ php如何在類中定義常量
我們可以在類中定義常量。常量的值將始終保持不變。在定義和使用常量的時候不需要使用$符號。
classMyClass
{
constconstant='constantvalue';
functionshowConstant(){
echoself::constant." ";
}
}
echoMyClass::constant." ";
$classname="MyClass";
echo$classname::constant." ";//PHP5.3.0之後
$class=newMyClass();
$class->showConstant();
echo$class::constant." ";//PHP5.3.0之後