constphp
A. php const在類裡面定義的常量在其他類中能使用嗎
可以使用,參考代碼如下。
<?php
classMyClass1{
//常量的值將始終保持不變。在定義和使用常量的時候不需要使用$符號
constconstant='constantvalue';
functionshowConstant1(){
echoself::constant."<br>";
}
}
classMyClass2{
functionshowConstant2(){
//訪問MyClass1的常量constant
echoMyClass1::constant;
}
}
$class=newMyClass2;
$class->showConstant2();exit;
?>
B. php中const和define的區別
define部分:
宏不僅可以用來代替常數值,還可以用來代替表達式,甚至是代碼段。(宏的功能很強大,但也容易出錯,所以其利弊大小頗有爭議。)
宏的語法為:
#define 宏名稱 宏值
作為一種建議和一種廣大程序員共同的習慣,宏名稱經常使用全部大寫的字母。
利用宏的優點:
1)讓代碼更簡潔明了
當然,這有賴於你為宏取一個適當的名字。一般來說,宏的名字更要注重有明確直觀的意義,有時寧可讓它長點。
2)方便代碼維護
對宏的處理,在編譯過程中稱為「預處理」。也就是說在正式編譯前,編譯器必須先將代碼出現的宏,用其相應的宏值替換,這個過程有點你我在文字處理軟體中的查找替換。所以在代碼中使用宏表達常數,歸根結底還是使用了立即數,並沒有明確指定這個量的類型。
const部分
常量定義的格式為:
const 數據類型 常量名 = 常量值;
而const定義的常量具有數據類型,定義數據類型的常量便於編譯器進行數據檢查,使程序可能出現錯誤進行排查。常量必須一開始就指定一個值,然後,在以後的代碼中,我們不允許改變此常量的值。
兩者之間的區別:
內存空間的分配上。define進行宏定義的時候,不會分配內存空間,編譯時會在main函數里進行替換,只是單純的替換,不會進行任何檢查,比如類型,語句結構等,即宏定義常量只是純粹的置放關系,如#define null 0;編譯器在遇到null時總是用0代替null它沒有數據類型(還有疑問請找C語言書籍看預處理部分或者看MSDN.而const定義的常量具有數據類型,定義數據類型的常量便於編譯器進行數據檢查,使程序可能出現錯誤進行排查,所以const與define之間的區別在於const定義常量排除了程序之間的不安全性.
C. 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());
?>
D. php如何定義常量,系統常量和使用常量
定義常量
define('NAME','hello');
echoNAME;//hello
PHP 自 5.3 後可以直接通過 const 關鍵字來定義常量
constNAME='hello';
echoNAME;//hello
系統常量可以直接列印,如:
echo__DIR__;//當前執行文件的路徑
echo__FILE__;//當前執行的文件地址及文件名
E. PHP CLASS CONST 常量=變數
通常const修飾符用於明確表示此「變數」不能修改。而常量更普通的意義在於它不是變數。
不同的系統約定也不一樣,比如簡單常量,有的系統可能就當「立即數」處理,存在於代碼段;字元串、結構體常量,就和靜態變數一樣,存在於靜態儲存區(數據段)。
另外,delphi里還存在一種「靜態變數」,也是以const修飾,它實際上等同於c里的static修飾。
左值是一個動態概念。常量可以作左值,左值很顯然可以是變數,表達式。
F. C語言中const是什麼意思。。。
const 推出的初始目的,正是為了取代預編譯指令,消除它的缺點,同時繼承它的優點。
const關鍵字使用非常的靈活,這一點和php差別很大,php中const用來在類中定義一個常量,而在c中,const因位置不同有不同的作用,因情景不同有不同的角色,使用起來也是非常的靈活。
一、const用來修飾普通的變數(指針變數除外)的時候,const type name 和 type const name 這兩種形式是完全等價的,都表示其是常量,不能進行修改。
二、const用來修飾指針變數的時候,分為以下四種情況
1、const type *name :這種情況下,const修飾的指針變數name所指向的type類型對象,也就是說指向的這個對象是不能進行修改的,因為其是常量,而指針變數確實可以進行修改的。
2、type const *name :這種情況下,const修飾的指針變數name所指向的type類型對象,意思完全同上,只是顛倒了以下順序。
3、type * const name :這種情況下,const修飾的指針變數name,也就是說這個指針變數的值是不能進行修改的,但是指針變數所指向的對象確實可以修改的。
4、const type * const name :這種情況下,const修飾的指針變數name以及指針變數name所指向的對象,也就是說這個指針變數以及這個指針變數所指向的對象都是不能進行修改的。
(6)constphp擴展閱讀
使用const在一定程度上可以提高程序的安全性和可靠性。另外,在觀看別人代碼的時候,清晰理解const所起的作用,對理解對方的程序也有一定幫助。另外CONST在其它編程語言中也有出現,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。
在c中,對於const定義的指針,不賦初值編譯不報錯,int* const px;這種定義是不允許的。(指針常量定義的時候對其進行初始化)int const *px;這種定義是允許的。(常指針可以再定義的時候不初始化)
但是,在C++中int* const px;和const int* const px;會報錯,const int* px;不報錯。必須初始化指針的指向int* const px = &x;const int* const px=&x;強烈建議在初始化時說明指針的指向,防止出現野指針!
G. php static和const
靜態的常量字元指針。
一個靜態的、值不能被改變的整型常量。靜態變數與全局變數差不多,就是函數執行完畢之後,這個變數的值仍然保留,下次調用該函數時,這個變數的值仍然存在。
const 是常量,即從程序運算開始到結束,數值不變的量。
static 用於變數,聲明這個變數的存儲單元靜態分配,從程序運算開始到結束這個變數的存儲單元不變化。static常用於全局量,一是存在裡面的值始終有效,不因進退出子程序數值消失,另外static的變數運算速度比非靜態分配的快。
常量是不出現在等號左邊的。例如輸出輸入格式里的字元串就是常量,程序里直接寫入的數據也是常量。
y = a * x + 300.0; 300.0 是常量. 常量在電腦里也被分配存放單元的,但值不可變。
網路貼吧里有好些吧是有關編程的。貼吧就是論壇--Forum 啊。