導航:首頁 > 編程語言 > php類什麼時候用靜態方法

php類什麼時候用靜態方法

發布時間:2022-03-07 08:03:19

A. php類中有靜態方法和非靜態的,我想問的是,什麼時候用靜態方法,靜態方法和普通方法有什麼不同

php類中的靜態方法和非靜態方法,跟一般我們所說OOP編程中的用法不盡相同,有些特性是不完善的,但你可以當它們是正規OOP的類來使用。

B. 什麼時候用靜態方法static - PHP進階討論

靜態方法就是隸屬於一個類的函數,為什麼希望讓這個函數隸屬於類,一般有兩種情況:1、函數的名字太常規,以至於可能與其它獨立函數產生命名沖突,則你把它作為類的靜態方法,可以變相起到封入命名空間的效果。比如你想為某個類定義一個特別版的setcookie();2、當一個函數希望訪問某個類的私有成員變數時(private 或 protected),顯然在通常情況下,它作為外部獨立函數是訪問不到的。把它定義為那個類的靜態方法,就可以作為類的成員函數輕松訪問那些私有成員變數了。另外對 6 樓做一個補充:靜態成員方法也有訪問級別,如果定義為了 private 或 protected,則外部是無法作為普通函數直接調用的。

C. php 一般什麼時候用靜態方法

1. 即使類中的方法並未用static聲明,但其未使用到可改變的類成員變數,在外部仍可用操作符::來調用;
2. 以靜態方式(用::操作符)調用的方法中$this的取值是由調用時的上下文決定的!而不是定義他的類!!

D. php 靜態方法 是什麼意思

<?php
header('content-type:text/html;charset=utf-8');
/*
普通方法,存放類內,只有一份
靜態方法,也是存放於類內,只有一份
區別在於:普通方法需要對象去調用,需要綁定$this
即,普通方法,必須要有對象,然後讓對象來調用
而靜態方法,不屬於哪一個對象,因此不需要綁定$this
即,不需要對象也可以調用
*/
class Human{
static public $head=1;
public function easyeat(){
echo '普通方法吃飯<br />';
}
static public function eat(){
echo '靜態方法吃飯<br />';
}
public function intro(){
echo $this->name;
}
}
Error_reporting(E_ALL|E_STRICT);
//此時沒有對象!方法可以執行
Human::eat();
/*
以下方法easyeat是一個非靜態方法,就由對象來調用,但,用類來調用此方法來也可以執行,而嚴格狀態下,此方法會執行,同時報錯,
Strict Standards: Non-static method Human::easyeat() should not be called statically in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 32
*/
Human::easyeat();
/*
接上,從邏輯來理解,如果用類名靜態調用非靜態(普通)方法
比如:intro()
那麼,這個$this是指哪個對象呢??
因此會報錯,因為找不到對象!
Fatal error: Using $this when not in object context in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 23
*/
Human::intro();
/*
如上分析,其實,非靜態方法,是不能由類名靜態調用的,但目前,php中的面向對象檢測不夠嚴格,只要靜態方法中沒有$this關鍵字,就會轉化成靜態方法來處理!
*/
$li=new Human();
$li->eat();
/*
總結:
類》訪問->靜態方法(類的方法)->可以
類》訪問->普通方法(對象的方法)->不可以(雖然方法里不用$this關鍵字時,可以!但不支持這種寫法)
對象》訪問》靜態方法(類的方法)->可以
對象》訪問》普通方法(對象的方法)->可以
*/
?>

E. 在php開發中什麼時候使用static,什麼時候不使用 也就是什麼時候該將類或方法靜態化,什麼時候不能。

恆哥,不好意思!我說一下,不對之處還請指正!不能用static修飾class吧!我只用過靜態變數,靜態成員方法!靜態成員方法一般在該方法不屬於某個特定的類實例時使用,即直接屬於某個類,靜態成員方法相當於一個全局函數!以前看書說類和對象在內存中儲存方式上得知,靜態方法不存在於儲存對象的堆棧中,而是保存在定義類的堆棧中,說明在對象中你「找不到」靜態方法的!但是PHP也能直接通過對象的方式調用靜態的方法,只不過PHP在內部處理了這種調用!但是類的靜態成員變數是不能直接通用對象的方式來調用的。

F. php 什麼時候 靜態方法

當一個方法被執行時才占內存,執行完畢就釋放了,靜態函數載入時會放到靜態區,暫時不佔內存

G. php什麼時候用靜態方法

靜態方法就是隸屬於一個類的函數,為什麼希望讓這個函數隸屬於類,

H. php中靜態方法的問題

self::是代表在本類里調用靜態方法get();因為在靜態方法裡面只能調靜態方法,不能調用實例方法,如果調用實例方法的話那就用this,

I. PHP面向對象的靜態方法具體什麼時候用

靜態變數,沒有什麼特定的情況。就像public一樣,只不過調用方法不一樣。一個是$this->變數名,一個是self::變數名

閱讀全文

與php類什麼時候用靜態方法相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:62
Windows常用c編譯器 瀏覽:778
關於改善國家網路安全的行政命令 瀏覽:833
安卓如何下載網易荒野pc服 瀏覽:654
javainetaddress 瀏覽:104
蘋果4s固件下載完了怎麼解壓 瀏覽:1003
命令zpa 瀏覽:286
python編譯器小程序 瀏覽:945
在app上看視頻怎麼光線調暗 瀏覽:540
可以中文解壓的解壓軟體 瀏覽:593
安卓卸載組件應用怎麼安裝 瀏覽:913
使用面向對象編程的方式 瀏覽:340
程序員項目經理的年終總結範文 瀏覽:930
內衣的加密設計用來幹嘛的 瀏覽:433
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:401
夢幻端游長安地圖互通源碼 瀏覽:746
電腦本地文件如何上傳伺服器 瀏覽:314