導航:首頁 > 編程語言 > php類const

php類const

發布時間:2022-09-28 09:28:41

『壹』 php static和const

靜態的常量字元指針。

一個靜態的、值不能被改變的整型常量。靜態變數與全局變數差不多,就是函數執行完畢之後,這個變數的值仍然保留,下次調用該函數時,這個變數的值仍然存在。

const 是常量,即從程序運算開始到結束,數值不變的量。

static 用於變數,聲明這個變數的存儲單元靜態分配,從程序運算開始到結束這個變數的存儲單元不變化。static常用於全局量,一是存在裡面的值始終有效,不因進退出子程序數值消失,另外static的變數運算速度比非靜態分配的快。

常量是不出現在等號左邊的。例如輸出輸入格式里的字元串就是常量,程序里直接寫入的數據也是常量。
y = a * x + 300.0; 300.0 是常量. 常量在電腦里也被分配存放單元的,但值不可變。

網路貼吧里有好些吧是有關編程的。貼吧就是論壇--Forum 啊。

『貳』 PHP中const的「::」怎以理解

明明是 say_const::CHARSET 啊,你怎麼看成了const::CHARSET?
CHARSET是類say_const中定義的一個常量,所以通過::來訪問。

第二個例也是一樣的,沒什麼不同。

『叄』 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 const可以寫在類外嗎

在【PHP 5.3.0】以後,可以使用const關鍵字在類定義的外部定義常量

【先前版本】const 關鍵字只能在類(class)中使用

一個常量一旦被定義,就不能再改變或者取消定義,否則會反饋一個錯誤

『伍』 php const在類裡面定義的常量在其他類中能使用嗎

可以使用,參考代碼如下。

<?php
classMyClass1{
//常量的值將始終保持不變。在定義和使用常量的時候不需要使用$符號
constconstant='constantvalue';
functionshowConstant1(){
echoself::constant."<br>";
}
}
classMyClass2{
functionshowConstant2(){
//訪問MyClass1的常量constant
echoMyClass1::constant;
}
}
$class=newMyClass2;
$class->showConstant2();exit;
?>

『陸』 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提示常量未定義

?>

『柒』 PHP CLASS CONST 常量=變數

這里就是你程序設計的問題了

在類中const一經定義,便不能修改值,一旦修改,會報致命錯誤

在你的代碼中類subid的PPID已經被賦值為"",他就不能修改值了,就不可能被賦值為$("pid")(這種寫法還從沒見過)

這里要接受變數你就不能使用const修飾PPID和PDID

『捌』 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 CLASS CONST 常量=變數

通常const修飾符用於明確表示此「變數」不能修改。而常量更普通的意義在於它不是變數。
不同的系統約定也不一樣,比如簡單常量,有的系統可能就當「立即數」處理,存在於代碼段;字元串、結構體常量,就和靜態變數一樣,存在於靜態儲存區(數據段)。
另外,delphi里還存在一種「靜態變數」,也是以const修飾,它實際上等同於c里的static修飾。
左值是一個動態概念。常量可以作左值,左值很顯然可以是變數,表達式。

『拾』 php const用法詳解 以及php常量定義const和define的異同

常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在腳本執行期間該值不能改變(除了所謂的魔術常量,它們其實不是常量)。常量默認為大小寫敏感。通常常量標識符總是大寫的。

可以用 define() 函數來定義常量。在 PHP 5.3.0 以後,可以使用 const
關鍵字在類定義的外部定義常量,先前版本const
關鍵字只能在類(class)中使用。一個常量一旦被定義,就不能再改變或者取消定義。

常量只能包含標量數據(boolean,integer,float 和 string)。 可以定義 resource
常量,但應盡量避免,因為會造成不可預料的結果。

可以簡單的通過指定其名字來取得常量的值,與變數不同,不應該在常量前面加上 $
符號。如果常量名是動態的,也可以用函數constant() 來獲取常量的值。用

get_defined_constants()
可以獲得所有已定義的常量列表。

常量和變數有如下不同:
·常量前面沒有美元符號($);
·常量只能用 define() 函數定義,而不能通過賦值語句;
·常量可以不用理會變數的作用域而在任何地方定義和訪問;
·常量一旦定義就不能被重新定義或者取消定義;
·常量的值只能是標量。

Example #1 定義常量
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // 輸出 "Constant" 並發出一個提示性信息
?>

Example #2 使用關鍵字 const 定義常量
<?php
// 以下代碼在 PHP 5.3.0 後可以正常工作
const CONSTANT = 'Hello World';
echo CONSTANT;
?>
Example #3 合法與非法的常量名
<?php
// 合法的常量名
define("FOO",
"something");
define("FOO2",
"something else");
define("FOO_BAR", "something more");
// 非法的常量名
define("2FOO",
"something");

//
下面的定義是合法的,但應該避免這樣做:(自定義常量不要以__開頭)
// 也許將來有一天PHP會定義一個__FOO__的魔術常量
// 這樣就會與你的代碼相沖突
define("__FOO__", "something");
?>

【問】在php中定義常量時,const與define的區別?

【答】使用const使得代碼簡單易讀,const本身就是一個語言結構,而define是一個函數。另外const在編譯時要比define快很多。

(1).const用於類成員變數的定義,一經定義,不可修改。define不可用於類成員變數的定義,可用於全局常量。
(2).const可在類中使用,define不能。
(3).const不能在條件語句中定義常量。
例如:

if (...){

const FOO =
'BAR'; //
無效的invalid

}
if (...)
{

define('FOO', 'BAR'); // 有效的valid

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

const FOO = 'BAR';
for ($i = 0;
$i < 32; ++$i) {

define('BIT_' . $i, 1 << $i);

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

const BIT_5 = 1 <<
5; //
無效的invalid

define('BIT_5', 1 << 5); //
有效的valid
(6).const定義的常量時大小寫敏感的,而define可通過第三個參數(為true表示大小寫不敏感)來指定大小寫是否敏感。
例如:

define('FOO', 'BAR', true);
echo FOO; //
BAR
echo foo; //
BAR

相關函數:

define —
定義一個常量

說明:
bool define ( string $name , mixed $value [,
bool $case_insensitive = false ]

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

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

的方式儲存。)

返回值:成功時返回 TRUE, 或者在失敗時返回 FALSE.

constant —
返回一個常量的值
說明:
mixed constant ( string $name )

通過 name 返回常量的值。當你不知道常量名,卻需要獲取常量的值時,constant()
就很有用了。也就是常量名儲存在一個變數里,或者由函數返回常量名。該函數也適用

class constants。
參數:
name :常量名。

返回值:
返回常量的值。如果常量未定義則返回 NULL。

defined —
檢查某個名稱的常量是否存在

說明:
bool defined ( string $name )

檢查該名稱的常量是否已定義。

Note: 如果你要檢查一個變數是否存在,請使用 isset()。 defined()
函數僅對 constants 有效。如果你要檢測一個函數是否存在,使用 function_exists()。

參數:
name :常量的名稱。

返回值:
如果該名稱的常量已定義,返回 TRUE;未定義則返回
FALSE。

get_defined_constants:

Returns an associative array with the names of all the constants
and their values

以關聯數組返回常量名和常量的值。這包括那些由擴展以及由define()函數創建的常量。

閱讀全文

與php類const相關的資料

熱點內容
壓縮因子定義 瀏覽:968
cd命令進不了c盤怎麼辦 瀏覽:214
葯業公司招程序員嗎 瀏覽:974
毛選pdf 瀏覽:659
linuxexecl函數 瀏覽:727
程序員異地戀結果 瀏覽:374
剖切的命令 瀏覽:229
干什麼可以賺錢開我的世界伺服器 瀏覽:290
php備案號 瀏覽:990
php視頻水印 瀏覽:167
怎麼追程序員的女生 瀏覽:487
空調外壓縮機電容 瀏覽:79
怎麼將安卓變成win 瀏覽:459
手機文件管理在哪兒新建文件夾 瀏覽:724
加密ts視頻怎麼合並 瀏覽:775
php如何寫app介面 瀏覽:804
宇宙的琴弦pdf 瀏覽:396
js項目提成計算器程序員 瀏覽:944
pdf光子 瀏覽:834
自拍軟體文件夾名稱大全 瀏覽:328