Ⅰ 關於php類中定義常量問題
代碼試修改如下:
publicfunctionxx(){
echo"childtest";
echoself::tt;
}
Ⅱ php的面向對象的介面里只能有抽象方法和靜態常量,定義方法的時候前面不用加abstract嗎
在php中,如果你用interface定義一個介面,那麼介面內部的方法都是沒有實體的public公共方法。如果要使用這個介面來實現邏輯處理,那就需要implements來實現介面,從而介面中所有定義的方法都必須在介面類中全部實現
Ⅲ php中靜態變數屬於A.全局變數B.局部變數C.可變變數D.常量
A,靜態變數屬於全局變數,不可以變得
Ⅳ PHP:面向對象中怎麼在類的內部調用常量
<?php
class Foo{
const con_var="常量值不能被改";
public function method_a(){
echo (self::con_var); // 內部調用
}
}
echo(Foo::con_var); //外部調用 注修飾符為public
$myFoo=new Foo();
echo ($myFoo->method_a());
?>
Ⅳ php靜態屬性跟常量有什麼區別啊
類的靜態屬性. 會在類文件載入的時候, 就初始化.
屬性值是可以更改的.
常量...一旦定義了. 就無法變更值..
這應該算是最大區別.
另外, 常量只能是簡單的數據類型(如: int , string , boolean,float , double) ,
類的靜態屬性, 可以是php所支持的任意變數類型(但初始化的時候. 只能是簡單數據類型, 數組)
Ⅵ PHP中,可以使用什麼實現在不創建對象的情況下調用類中的常量,變數和方法
那就用靜態調用了。但事先要聲名你的變數戓方法為static
調用時用::就可以了
Ⅶ php 怎麼理解常量,對象中的靜態變數在內存儲存是否多個用戶同時使用一個
常量只能使用在一個HTTP請求,即同一個進程。多個用戶肯定是不行,每個用戶的一個操作就是一個HTTP請求,一個進程。如果要多個用戶使用同一個的話可以用緩存,也可以用寫入文件、資料庫之類記錄起來,多個用戶需要用到就去讀取。
Ⅷ 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之後
Ⅸ php 為什麼常量可以用數組定義 靜態變數卻不能
類的變數成員叫做「屬性」,或者叫「欄位」、「特徵」,在本文檔統一稱為「屬性」。屬性聲明是由關鍵字 public,protected 或者 private 開頭,然後跟一個普通的變數聲明來組成。屬性中的變數可以初始化,但是初始化的值必須是常數,這里的常數是指 PHP 腳本在編譯階段時就可以得到其值,而不依賴於運行時的信息才能求值
static $a = ABC;
就像其它所有的 PHP 靜態變數一樣,靜態屬性只能被初始化為文字或常量,不能使用表達式。所以可以把靜態屬性初始化為整數或數組,但不能初始化為另一個變數或函數返回值,也不能指向一個對象。
Ⅹ php中static,const和define的區別
(1)編譯器處理方式不同define宏是在預處理階段。const常量是編譯運行階段使用。(2)類型和安全檢查不同define宏沒有類型,不做任何類型檢查,僅僅是。const常量有具體的類型,在編譯階段會執行類型檢查。(3)存儲方式不同define宏僅僅是,有多少地方使用,就多少次,不會分配內存。const常量會在內存中分配(可以是堆中也可以是棧中)。(4)const可以節省空間,避免不必要的內存分配。例如:#definePI3.14159//常量宏constdoulbePi=3.14159;//此時並未將Pi放入ROM中doublei=Pi;//此時為Pi分配內存,以後不再分配!doubleI=PI;//編譯期間進行宏替換,分配內存doublej=Pi;//沒有內存分配doubleJ=PI;//再進行宏替換,又一次分配內存!const定義常量從匯編的角度來看,只是給出了對應的內存地址,而不是象#define一樣給出的是立即數,所以,const定義的常量在程序運行過程中只有一份拷貝,而#define定義的常量在內存中有若干個拷貝。(5)提高了效率。編譯器通常不為普通const常量分配存儲空間,而是將它們保存在符號表中,這使得它成為一個編譯期間的常量,沒有了存儲與讀內存的操作,使得它的效率也很高。