導航:首頁 > 編程語言 > php靜態類初始化

php靜態類初始化

發布時間:2022-12-22 14:07:41

㈠ 關於php當中static關鍵字,資料上說只能初始化一次。但是數組變數在定義時賦值會被下一次初始化覆蓋!

你定義了static 就是靜態變數
但是靜態變數的初始化只進行一次,而且是定義靜態變數的時候初始化
static $a = array(1,2,3);
print_r($a);
static $a = array();
這樣實際上是定義了兩次靜態變數,並初始化,實際做會執行其中一個
就是後面這個
上面的代碼實際上會被編譯編程這樣
<?php
function f1(){
static $a = array();

print_r($a);

print_r($a);
}
function f2(){
static $a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;
print_r($a);
print_r($a);
}

㈡ php靜態屬性跟常量有什麼區別啊

類的靜態屬性. 會在類文件載入的時候, 就初始化.
屬性值是可以更改的.
常量...一旦定義了. 就無法變更值..
這應該算是最大區別.

另外, 常量只能是簡單的數據類型(如: int , string , boolean,float , double) ,
類的靜態屬性, 可以是php所支持的任意變數類型(但初始化的時候. 只能是簡單數據類型, 數組)

㈢ PHP類中給成員屬性初始化值為什麼報錯

PHP類中,若要初始化成員屬性,那麼成員屬性的初始值必須是一個常數,如果不是常數(如變數),則會報錯。

㈣ php中的initialize()方法是什麼意思麻煩大俠們幫一下忙!!!!!!!!!!

初始化函數,預載入時使用,有較高的運行優先順序

㈤ PHP新手的提問

看來你用的是YII框架, YII::app()是YII底層封裝好的方法,返回一個單例,在面向對象中,「::」 主要用來調用靜態方法;「->」 是一個對象實例訪問自己的屬性或方法;「=>」 在這裡面是數組的表示方法,即鍵值對。建議你如果是新手,不要一開始就看框架,基礎知識很重要

㈥ php中,初始化對象是什麼意思,實例化是什麼意思

初始化是在構造函數裡面完成的,一般對成員復制之類的操作;
實例化對象:new ClassName(),實例化的時候會自動初始化,即調用__construct()

㈦ php靜態數組

解決辦法一:

$newarr不要用靜態數組,而是在每次遞歸調用後把返回值(數組)與上一層的$newarr進行合並即可,這樣的話不管調用多少次,$newarr都不會保留上次的值

functionunless($arr,$fid=0){
$newarr=array();
foreach($arras$v){
if($v["pid"]==$fid){
$newarr[]=$v;
$newarr=array_merge($newarr,unless($arr,$v["did"]));
}
}
return$newarr;
}

解決辦法二:

如果參數$fid只有在首次運行(非遞歸)是為0,在遞歸調用時都不是0,那麼可以根據這個在首次運行時重新初始化$newarr,這樣在外部多次調用這個函數都不會保留上次的值

functionunless($arr,$fid=0){
static$newarr=array();
if($fid==0)$newarr=array();
foreach($arras$v){
if($v["pid"]==$fid){
$newarr[]=$v;
unless($arr,$v["did"]);
}
}
return$newarr;
}

如果在遞歸的時候$fid仍然有可能是0,那麼可以新增加一個參數,用來標記是否首次運行:

functionunless($arr,$fid=0,$x=0){
static$newarr=array();
if($x==0)$newarr=array();
foreach($arras$v){
if($v["pid"]==$fid){
$newarr[]=$v;
unless($arr,$v["did"],1);
}
}
return$newarr;
}

㈧ php中static 靜態變數和普通變數的區別

php中static 靜態變數和普通變數的區別:

在變數的前面加上static 就構成了靜態變數(static 變數)。

static變數和普通變數的區別在於非靜態全局變數的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態的全局變數在各個源文件中都是有效的。 而靜態全局變數則限制了其作用域, 即只在定義該變數的源文件內有效, 在同一源程序的其它源文件中不能使用它。由於靜態全局變數的作用域局限於一個源文件內,只能為該源文件內的函數公用, 因此可以避免在其它源文件中引起錯誤。

㈨ php靜態數組成員為什麼總是被初始化 不能使用靜態成員存儲全站共享的信息么

在PHP里類本身 只有在一個頁面(包括include文件)里存在的 ,所有成員屬性都一樣
只要你換頁面 或者重新打開 那都會重置的。

所謂靜態是 在一個頁面 多次調用的時候 才能有效保存。

你要實現訪問網站的所有訪客的ip ,
最有效方法 是 存儲在 資料庫當中 這樣才能保證不會 丟失

---------------------------
你只要進行了刷新頁面 所有變數會被 清除 在重新生成。

短時間存儲的 話 內存當然是最有效的。
但是需要伺服器配置 才可以使用
比如 Memcache擴展 就是利用內存進行緩存的。
網上有很多資料 你可以搜一下

閱讀全文

與php靜態類初始化相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163