導航:首頁 > 編程語言 > 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靜態函數的調用相關的資料

熱點內容
各大網站的伺服器地址 瀏覽:368
伺服器連接不到網際網路什麼意思 瀏覽:739
如何在文件夾中顯示頁碼 瀏覽:354
雲伺服器登不上qq 瀏覽:417
程序員四級工程師 瀏覽:715
薄荷app怎麼把體重清零 瀏覽:644
草料二維碼加密怎麼製作 瀏覽:851
04s519隔油池圖集pdf 瀏覽:242
程序員搞測試 瀏覽:552
蘋果app應用隱藏了怎麼辦 瀏覽:660
PDF調取 瀏覽:199
獨立柱加密需要什麼條件 瀏覽:814
php培訓出來找不到工作 瀏覽:106
小程序克隆源碼 瀏覽:448
python整數整除負數 瀏覽:880
遮天用什麼小說app看 瀏覽:645
什麼可以發類似朋友圈的app 瀏覽:495
cmd查找命令行 瀏覽:661
如何申請域名需要虛擬伺服器 瀏覽:497
氣體流量的演算法 瀏覽:634