1.定義類
class A{
public $name;
public $age;
public function B($_name){
$this->name=$_name;
} //定義方法
}
建立對象
$a = new A();
指派
$a->name="小明";
$a->age=12;
輸出
echo $a->name;
調用對象中的方法
$a->B();
2.構造方法,沒有傳回值
(1)public function 類名(){}
(2)public function __construct(){}
注:構造方法在建立對象時就會被自動調用
3.析構函數
function _destruct(){}
注:(1)退出時自動被調用
(2)對象沒有被引用變為垃圾對象時,會自動調用該對象的析構方法
(3)用于銷毀資源,如關閉資料庫
(4)沒有傳回值
4.靜态變量
//定義并初始化方法
public static $a = 0;
//類裡調用
(1)self::$a+=1;
(2)::$a+=1;
//類外調用
類名::$a+=1;
5.靜态方法(不能通路非靜态變量)
static function A(){}
内部調用:
(1)self::A();
(2)類名::A();
外部調用:
(1)類名::A();
(2)對象名->A();
6.封裝
public 公有
private 私有,隻有本類可使用
protected 本類和子類中可使用
7.繼承
class 子類名 extends 父類{}
注:将一些共用屬性和方法封裝進父類中隻會繼承父類中的public屬性/protected屬性
8.抽象類
(1)不能被執行個體化的類,建立不了對象,如父類
abstract class A{}
(2)抽象方法,沒有方法體
abstract function a();
(3)繼承了抽象類一定要定義裡面的所有抽象方法
9.final關鍵字
如果不希望某類被繼承(安全性問題)
final class A{}
如果希望某方法不被重寫
final function a(){}
注:final 關鍵字不能修飾屬性
10.接口
定義接口
interface 接口名{}
注:接口的方法沒有方法體
接口中可以有屬性,但是必須是常量
實作接口
class 類名 implements 接口1,接口2...{}
注:實作接口,一定要聲明裡面的所有方法