php物件導向靜態和非靜態

2021-06-20 20:42:30 字數 1131 閱讀 9264

靜態與非靜態的區別在於前面有沒有static的修飾,有static的是靜態變數,明顯,沒有的則是非靜態了。一般呼叫靜態變裡,是通過 :: 來呼叫,而非靜態是通過->來呼叫。但下面去會顛覆你的三觀。你會發現用 :: 也能呼叫非靜態,用 ->也能呼叫靜態.

<?php

class admin

public static function getname()

public function getnick($nick)

public static function addcount()

public function addnum()

public static function max($num, $num2)

public function max3($num1, $num2, $num3)

public function index()

} $person = new admin();

$person->nick; // jose

$person->getnick('tang');

echo $person->nick; //tang;

echo admin::$count; // 0

admin::addcount(); // $count = 1

admin::addcount(); // $count = 2

admin::addcount(); // $count = 3

echo admin::$count;

echo admin::index(); // this is index

echo $person->index(); // this is index

echo admin::getnick('nike'); //報錯了,因function getnick() 中有$this

//同樣也可以通過 例項名 -> 來呼叫靜態方法

$person->addcount();

$person2 = new admin();

$person->addcount(); // $count = 5;

?>

靜態和非靜態

在自定義類和.net framework類庫中都可以發現,類中大部分是乙個類,很少是靜態類,那到底靜態類是否真的需要?其實程式上的設計都是必須的,所有的設計都是 於生活,於客戶分析。在程式設計初期,需要業務邏輯,明確編寫流程,以防後期各種修改。比如設計個學校的管理軟體,記錄每個學生的資訊,包括班級 ...

靜態和非靜態

靜態包括靜態類 靜態方法和靜態變數。靜態都是全域性擁有的,比如,靜態變數是這個類的所有例項共有 乙個例項的修改影響其他例項。靜態類中只能包含靜態變數和靜態方法。非靜態類既可以包含靜態變數和方法,又可以包含非靜態變數和方法。靜態類不能夠被例項化,直接使用類名呼叫變數或方法。非靜態變數同樣可以使用類名呼...

物件導向 靜態類與非靜態類的區別

靜態類和非靜態類重要的區別是在於靜態類不能被例項化,也就是說不能使用 new 關鍵字建立靜態類型別的變數。使用static關鍵字來宣告靜態類,這樣的意義在於 首先,它防止程式設計師寫 來例項化該靜態類 其次,它防止在類的內部宣告任何例項欄位或方法。關鍵字 static 呼叫方式 靜態類名.靜態方法 ...