導航:首頁 > 編程語言 > php靜態函數的調用

php靜態函數的調用

發布時間:2022-11-25 17:32:41

A. php靜態方法為什麼不能調用this

一般方法調用,都是使用$obj->method();
這里的method方法中 $this 很明顯就是 $obj
但是靜態方法調用,我們一般使用
Object::method();
沒有進行實例化,所以根本沒有$this對象

B. php直接用類名調用靜態方法會不會觸發類的構造函數

調用靜態方法與觸發類的構造函數沒有必然關系。但是靜態方法可以實例化類本身,這時候會觸發構造函數,而且可以傳參數。如:
classclassname{
privatefunction__construct($a){
$this->a=$a;
exit($this->a);//列印一下
}

publicstaticfunctionstaticfun($a){
newself($a);
}
}

//usecaseasfollow:
$a='測試123';
classname::staticfun($a);

C. php 使用靜態方法的幾個注意事項說明

1.即使類中的方法並未用static聲明,但其未使用到可改變的類成員變數,在外部仍可用操作符::來調用;

2.以靜態方式(用::操作符)調用的方法中$this的取值是由調用時的上下文決定的!而不是定義他的類!!

例如以下的代碼:

<?php
classTestClass1
{
public$normal_v='normal_vfromTestClass1';
publicstatic$STATIC_V='STATIC_VfromTestClass1';
publicfunctiontest_func1()
{
echo$this->normal_v.'<br/>'.self::$STATIC_V;
}
}
classTestClass2
{
public$normal_v='normal_vfromTestClass2';
publicstatic$STATIC_V='STATIC_VfromTestClass2';
publicfunctiontest_func2()
{
TestClass1::test_func1();
}
}
$t2=newTestClass2();
$t2->test_func2();

這段代碼是輸出會是什麼呢,我原以為會是normal_v from TestClass1 <br /> STATIC_V from TestClass1,測試發現其實我錯了,正確的輸出是:

normal_v from TestClass2
STATIC_V from TestClass1

說明:test_func1()雖然是在TestClass1中定義的,但卻是在TestClass2中調用的,其內部的$this變數則是由TestClass2決定的!

其實這兩個類的關系應該屬於"雙向關聯".

D. PHP 靜態方法怎麼調用父類非靜態方法

子類的靜態方法裡面實例化父類,然後調用父類的非靜態方法。
因為子類的靜態方法調用父類的方法需要使用parent::函數名()或有可能是self::函數名(),子類的靜態方法使用parent::函數名()或有可能是self::函數名()時這個函數名()必須是父類裡面的一個靜態方法,如果不是靜態方法,會報錯Strict Standards: Non-static method parentClass::b() should not be called statically,但是還是會有正確結果喲

E. php中怎麼調用方法中的靜態變數

static
變數是php中的變數作用范圍的一個重要特性
靜態變數僅在局部函數域中存在且只被初始化一次,當程序執行離開此作用域時,其值不會消失,會使用上次執行的結果
一個普通的變數,如
$message
在它所在的函數執行完之後就被釋放了
即第二個function執行10次,每次執行完後,$message變數被釋放,所以每次都是1
變數前加了static後,該變數在它所在的函數執行完後不會被釋放
即第一個function每次被執行後,static
$message沒有被釋放,它將被繼續累加

F. PHP中如何調用靜態成員函數

用IntPtr類型,Hdc一般是指繪圖設備句柄,用Graphics的成員方法GetHdc獲得,Graphics可以用靜態方法FromHwnd創建某個窗體的繪圖器,把某個窗體的Handle傳給他就可以了,如果Handle傳0,則創建的是整個屏幕的繪圖器。

G. ThinkPHP3.2中如何使用類函數靜態調用

common/里建一個 common.php文件。裡面存函數,這個文件是默認載入的,如果不是 common.php 就得手動載入。

直接建一個 common.php 文件寫在裡面。記得刪除緩存。

可以寫進ThinkPHP/Common/functions.php這個裡面,也可以ThinkPHP/Common/extend.php,但需要載入
載入的話需要理清他的架構,thinkphp載入有很簡單的自定義的一套方法,TP中調用自定義的函數庫應該在項目的config.php里配置

H. php類中 靜態函數怎麼調用普通函數

實例化類再調用 $_a = new 類; $_a->普通函數;

I. php中怎麼調用方法中的靜態變數

看看下面的實例:
<?php
function Test()
{
$w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>

本函數每次調用時都會將 $w3sky 的值設為 0 並輸出 "0"。將變數加一的 $w3sky++ 沒有其到效果,因為一旦退出本函數則變數 $w3sky 就不存在了。
要寫一個不會丟失本次計數值的計數函數,要將變數 $w3sky 定義為靜態(static)的:
如下:
<?php
function Test()
{
static $w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>

J. PHP類靜態調用的好處在哪裡 - PHP進階討論

如果類A你設置成靜態類的話,A->ma()是調用不出來的,會報錯,如果沒設置成的話
你A::ma()調用的時候系統會自動把類A設置成靜態類。。
靜態類的優勢是每用一次,只佔用一塊內存,一般來說,如果這個類你決定了,我整個PHP程序中ma()的方法里邊不傳參,ma()的方法不依賴於別的任何函數,是獨立的,那麼為了節省內存,可以用靜態類。。。
靜態類的用處並不常見,其實理解了就行。。
純手打,希望給分~

閱讀全文

與php靜態函數的調用相關的資料

熱點內容
下班之後的程序員 瀏覽:71
檢測支持ssl加密演算法 瀏覽:342
衢州發布新聞什麼APP 瀏覽:83
中國移動長沙dns伺服器地址 瀏覽:249
wifi密碼加密了怎麼破解嗎 瀏覽:596
linux命令cpu使用率 瀏覽:67
linux實用命令 瀏覽:238
傳奇引擎修改在線時間命令 瀏覽:109
php取域名中間 瀏覽:897
cad命令欄太小 瀏覽:830
php開發環境搭建eclipse 瀏覽:480
qt文件夾名稱大全 瀏覽:212
金山雲伺服器架構 瀏覽:230
安卓系統筆記本怎麼切換系統 瀏覽:618
u盤加密快2個小時還沒有搞完 瀏覽:93
小米有品商家版app叫什麼 瀏覽:94
行命令調用 瀏覽:436
菜鳥裹裹員用什麼app 瀏覽:273
窮查理寶典pdf下載 瀏覽:515
csgo您已被禁用此伺服器怎麼辦 瀏覽:398