1類的創建 class創建類
class Person{}
2.對象的創建 ?使用new關鍵字
class Person{}
$p1=new Person
3.成員的添加
添加成員需要 三個修飾符
public 公開的 ?定義公共的屬性和方法,類的外部,類的內部,子類都可以使用
protected 受保護的 ?定義受保護的屬性和方法 ?值能在類的內部和子類里使用
private 私有的 定義私有的屬性和方法 只能在自身的類里使用
方法成員如果前面不加修飾符 默認是public
4.成員調用使用->符號
$p1=new Person
$p1->fn()
使用成員屬性和方法的時候 ?屬性和方法前面不帶$符
$p1=new Person ? ?$p1->fn() ? ?echo $p1->name ?
5.特殊對象$this指向實例化的對象,如果類的方法里想使用類的其他屬性和方法得需要使用$this對象
public $name=“lisi”;
public function fn(){
echo $this->name;
}
6.構造方法 ?function__construct()構造函數在new實例化的時候系統會自動調用
public $name=“lisi”;
function __construct($name){
$this->name=$name;
}
public function fn(){
echo $this->name
}
7.析構方法
我們每次new實例化,系統就會給這個對象分配一個內存空間,如果不銷毀,系統壓力會很大,系統有一個析構方法__destruct 對象實例化之后系統會自動調用。內存銷毀的原則是先進后銷。
function __destruct(){
echo “delete”.$this->name."<br/>";
}
}
$p1=new Person("xiaosi");
$p2=new Person("xiaowang")
8.成員賦值
$p1->name="456";
echo $p1->name;
9.php中的繼承使用關鍵字 extends
class Person {
public $name="lisi";
public function fn(){
echo 111111
}
class Child extends Person{}
}
$c=new Child
$c->fn()
10.類中常量 ?使用const關鍵字定義常量,常量在定義和使用的時候不能帶$符。
使用的時候不能用$this 使用范圍修飾::前面還是這個類名或self
const ad=“xiaoxu”;
public $name="lisi";
public function fn(){
echo self::ad;}
如果向子類訪問父類中的常量 使用parent::常量名
class Person{
const ad="xiaoxu1111";
public $name="lisi1111";
public function fn(){
echo self::ad;}
}
class Child axtends Person{
function ff(){
echo parent::ad;
}
}
$c=new Child
11. 靜態變量 ?在變量前加上關鍵字 static 靜態屬性 ?不能使用->訪問了,使用類名::$變量名;
class Person{
public static $name="132";
}
$p=new Person;
echo Person::$name;
12.重載 覆蓋
子類繼承父類的方法時,如果子類有和父類同名的方法,從父類那繼承的方法就會被覆蓋掉,這個就叫重載。
如果父類的方法前面加上final 則子類無法重載父類的發發,就會報錯。
class Person{
const ad=“xiaoxu111”;
public $name="lisi1111"
public final function fn(){
echo self:ad
}
}
class Child extends Person{
function fn(){
echo "11111"
}
}
$c=new Child;
$c->fn()