首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 靜態變數與靜態方法(類別變數/類別方法)詳細教學

     編輯:PHP 綜合知識

靜態成員屬於類別本身,為所有實例共享。靜態變數稱「類別變數」,靜態方法稱「類別方法」。

靜態變數

定義與存取

class Child {
    public static $nums = 0; // 定義
    public function join_game() { self::$nums++; } // 類別內部存取
}
echo Child::$nums; // 類別外部存取

靜態 vs 實例變數

特性靜態變數實例變數
關鍵字static無
所屬類別物件實例
存取方式類別名::變數名$obj->變數名
共享性所有實例共享各實例獨立

範例:統計遊戲人數

<?php
class Child {
    public $name; public static $nums = 0;
    function __construct($name){ $this->name=$name; }
    public function join_game(){ self::$nums++; echo $this->name."加入遊戲<br/>"; }
}
$c1=new Child("www.bianceng.cn"); $c1->join_game();
$c2=new Child("李四"); $c2->join_game();
$c3=new Child("王二"); $c3->join_game();
echo "共有 ".Child::$nums." 人玩遊戲";
?>

靜態方法

定義與呼叫

class Student {
    public static $fee = 0;
    public static function enterSchool($ifee){ self::$fee += $ifee; }
    public static function getFee(){ return self::$fee; }
}
Student::enterSchool(340); // 類別名呼叫
$stu = new Student(); $stu->enterSchool(600); // 物件也可呼叫
echo Student::getFee();

限制

  • 靜態方法不能存取非靜態屬性($this 不可用)。
  • 非靜態方法可同時存取靜態與非靜態成員。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved