亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中靜態調用和實例化調用的區別是什么

發布時間:2020-07-01 09:24:48 來源:億速云 閱讀:329 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關php中靜態調用和實例化調用的區別是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

不同點有:1、靜態方法在程序開始時生成內存,實例方法在程序運行中生成內存;2、靜態方法可以直接調用,實例方法要先成生實例,通過實例調用方法;3、靜態的內存是連續的,實例申請的是離散的空間,所以沒有靜態方法快,靜態內存是有限制的。

php中靜態調用和實例化調用的區別是什么

靜態方法只有一個,無論你調用多少次,都是共用的,是沒有對象的概念,因此不能在靜態方法里面使用$this調用,如果非得調用的話,只能實例化自身類

實例化不一樣,每一個實例化是一個對象,擁有多個。

下面用一個實例來了解一下

<?php
Error_reporting(E_ALL|E_STRICT);
 
class A{
    
    public function bar(){
        echo 'bar'.PHP_EOL;
    }
    public static function foo(){
        echo 'foo'.PHP_EOL;
    }
}
 
A::bar();//會報錯
A::foo();//正確
$obj = new A();
$obj -> foo();//正確
/* 
  bar()是一個非靜態方法,應該由對象來調用,但用靜態來調用此方法也可以執行,而嚴格狀態下,此方法會執行,同時報錯, 
  Strict Standards: Non-static method Human::easyeat() should not be called statically in........
  但是實例化的類是可以調用靜態方法的。
*/
<?php
 
class A{
    public $name = 'kangbazi';
 
    public function bar(){
        echo 'bar'.PHP_EOL;
    }
    public static function foo(){
        echo self::$name.PHP_EOL;//報錯
    }
}
 
A::foo();
 
/*
    靜態方法不能調用非靜態屬性 。不能使用self::調用非靜態屬性。
*/

做一個小總結:

最大的區別在于內存。

靜態方法在程序開始時生成內存,實例方法在程序運行中生成內存,

所以靜態方法可以直接調用,實例方法要先成生實例,通過實例調用方法,靜態速度很快,但是多了會占內存。

任何語言都是對內存和磁盤的操作,至于是否面向對象,只是軟件層的問題,底層都是一樣的,只是實現方法不同。

靜態內存是連續的,因為是在程序開始時就生成了,而實例申請的是離散的空間,所以當然沒有靜態方法快,

而且靜態內存是有限制的,太多了程序會啟動不了。

關于php中靜態調用和實例化調用的區別是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲沃县| 宁津县| 芜湖县| 基隆市| 海林市| 铁岭市| 阿拉善左旗| 宣汉县| 汉中市| 资兴市| 农安县| 孝义市| 蓬溪县| 芮城县| 马尔康县| 洪泽县| 木里| 汾阳市| 宁远县| 松潘县| 辽中县| 谷城县| 金昌市| 五原县| 松阳县| 吉安市| 柘城县| 中山市| 改则县| 会理县| 南康市| 开原市| 伊宁市| 嘉鱼县| 彭泽县| 灵丘县| 凤城市| 绵竹市| 罗山县| 尖扎县| 富裕县|