當前位置:首頁 » 編程語言 » php調用非靜態方法

php調用非靜態方法

發布時間: 2022-07-17 13:16:14

『壹』 php不經過實例化也能調用非靜態方法。

這種非靜態的方法,在php中也可以調用,但是php已經不提倡這樣調用了,會提示一個Strict standards(非標准語法的)的錯誤


『貳』 PHP靜態方法和非靜態方法的區別

靜態方法必須使用static關鍵字聲明,面向對象編程中我們通常通過類的實例(而不是類的本身)來調用類,類其實是對象的模板,但是靜態方法區別於普通類,它不僅可以通過類的實例來調用,還可以通過類來訪問他們,比如 Game::getGame(); 使用類調用的時候使用::,在當前類調用還可以使用self關鍵字,比如 self::getGame(); 靜態方法是以類為作用域,不能訪問類中的普通屬性,因為他們屬於一個對象,但可以訪問靜態屬性。不知道你明白了沒有

『叄』 PHP中不同類中非靜態類靜態調用

面向對象的使用,最好是先熟悉一下設計模式。不然不能很好發揮面向對象的優點
要這樣調用,你不如考慮把function b 或 function a放到父類class C中
或是 把它們定義為靜態類

『肆』 PHP中,在B類的方法中,為什麼可以直接用A類名調用A的【非】靜態方法

php由於某些歷史原因支持className::nonStaticMethod()調用非靜態方法。請看下面這個帖7vd .cn/hpS(網址要連起來)

『伍』 PHP中可以靜態調用非靜態方法么

No不對應該是:靜態方法中不能引用非靜態方法——理由很簡單,因為靜態方法直接可以不經過實例化就可以使用。但是非靜態方法必須藉助一個實例才能使用。靜態方法中用非靜態變數,那麼這變數「沒有實例化」就不能被直接使用的。矛盾。

『陸』 PHP 靜態方法怎麼調用父類非靜態方法

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

『柒』 thinkphp5是如何做到非靜態方法使用db::table()可以調用

PHP 有個 __callStatic 方法了解一下;
class A {
public static function __callStatic( $name, $args) {
// 當調用了類中不存在的靜態方法時,會自動執行這個方法
// 然後在這個方法中可以去主動調用非靜態方法
return self::$name( ...$args );
// $name 是方法名稱, $args 是調用方法時傳的參數
}
public function demo() {
echo 'this is demo function';
}
}

print_r( A::demo() );

『捌』 PHP類的靜態(static)方法和靜態(static)變數使用介紹

在php中,訪問類的方法/變數有兩種方法:
1.
創建對象$object
=
new
Class(),然後使用」->」調用:$object->attribute/function,前提是該變數/方法可訪問。
2.
直接調用類方法/變數:class::attribute/function,無論是靜態/非靜態都可以。但是有前提條件:
A.
如果是變數,需要該變數可訪問。
B.
如果是方法,除了該方法可訪問外,還需要滿足:
b1)
如果是靜態方法,沒有特殊條件;
b2)
如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態的變數/方法,當然,調用靜態的變數/方法沒有問題。
然後我們再看一下使用$object->…
和使用class::…
都有什麼區別:
1.
使用$object->…
,需要執行構造函數創建對象;
2.
使用class::…
調用靜態方法/變數,不需要執行構造函數創建對象;
3.
使用class::…
調用非靜態方法/變數,也不需要執行構造函數創建對象。
然後奇怪的地方就出來了,既然2和3都一樣,那靜態方法/變數存在還有什麼意義呢?
差異還是顯然存在的,如下:
1.
靜態變數
靜態成員只保留一個變數值,而這個變數值對所有的實例都是有效,也就是說,所有的實例共享這個成員。
2.
靜態方法
靜態方法可以直接使用class::…
來調用,而非靜態方法需要滿足一定限制條件才能使用class::..
的方法調用,如之前所述

熱點內容
bs源碼 發布:2025-02-01 16:51:52 瀏覽:568
百度雲zip怎麼解壓 發布:2025-02-01 16:31:59 瀏覽:567
pmc密碼是什麼意思 發布:2025-02-01 16:28:49 瀏覽:784
蘋果手錶和安卓手錶哪個好用 發布:2025-02-01 16:28:07 瀏覽:583
上海電信上傳 發布:2025-02-01 16:22:10 瀏覽:983
有什麼好的雙u主板配置 發布:2025-02-01 16:18:17 瀏覽:177
編程漩渦 發布:2025-02-01 16:01:51 瀏覽:328
司機會所訪問 發布:2025-02-01 15:54:11 瀏覽:781
家用電腦改成伺服器並讓外網訪問 發布:2025-02-01 15:30:23 瀏覽:355
javac工資 發布:2025-02-01 15:24:28 瀏覽:23