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

php靜態調用非靜態

發布時間: 2022-09-21 00:31:15

php中不同類中非靜態類靜態調用

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

❷ 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::..
的方法調用,如之前所述

❸ php 中非靜態方法 可以調用靜態方法嗎

非靜態可以調用靜態 但 靜態不能調用非靜態

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

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


❺ PHP中可以靜態調用非靜態方法么

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

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

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

❼ PHP中類靜態調用和范圍解析操作符的區別

范圍解析操作符(::)

一對冒號,用於訪問靜態成員和類常量,還可以用於訪問類中被覆蓋的屬性和方法(手冊寫的是可以用於覆蓋類中的屬性和方法,我感覺應該是我的說法更好些)

❽ 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() );

熱點內容
圖的演算法java 發布:2025-01-11 05:57:07 瀏覽:481
梯形圖編譯器 發布:2025-01-11 05:56:26 瀏覽:259
安卓framework編譯 發布:2025-01-11 05:55:00 瀏覽:694
加密學原理 發布:2025-01-11 05:54:20 瀏覽:786
ocr編程 發布:2025-01-11 05:51:24 瀏覽:252
androiddecoder 發布:2025-01-11 05:44:13 瀏覽:730
蘇州數控編程培訓 發布:2025-01-11 05:42:51 瀏覽:855
編程式控制制小船 發布:2025-01-11 05:35:05 瀏覽:757
螢石雲清理緩存 發布:2025-01-11 05:34:29 瀏覽:779
怎麼在電腦上傳照片 發布:2025-01-11 05:30:20 瀏覽:488