php面向對象基礎一

php面向對象基礎一

  每學一門後端語言,都會先讓你瞭解什麼面向對象?現在我們就一起去了解什麼是面向對象。
什麼是面向對象?!什麼是面向過程?!

面向對象:把構成問題事務分解成各個對象,建立對象的目的描述某個事物在整個解決問題的步驟中的行爲。

面向過程:分析出解決問題所需要的步驟。

1.類
類的定義:

 class 類名{

  字段(屬性)

  方法(函數)

 }

繼承:extends

接口:interface

接口實現:implements

繼承:parent::方法名 或者類名::方法名

抽象類(方法):abstract

特別注意:解決類名的衝突可以使用命名空間 namespace

2.修飾符(public、private、protected)

修飾符 作用域
public 任意作用域
private 類內
protected 子類中

**3.include與require區別**
差異:二者出現的拋出的異常錯誤不一樣,當二者應用不存在的文件時,前者會拋出warring並且繼續進行下面的代碼,後者會拋出error不會繼續執行剩下的代碼。
Include:主要引入html文件
Require:主要用於引入php文件(嚴謹)
相同處:都可以用於引入文件

擴展:
require_once和include_once

require和require_once

Require:同一個文件多次會報錯

require_once:多次使用則會只引入一次(同一個文件引入只能引入一次)

Include和include_once

Include:可以多次引入

Include_once:多次使用則會只引入一次(同一個文件引入只能引入一次)

Require比require_once性能好

4.關鍵字(this、self)

this、self主要用於常量和靜態變量的使用

public static $st=666;
const PI = 3.1415926;
public function onlyRead(){
    echo "靜態字段:<br>";
    echo "類名讀取:".Person::$st."<br>";
    echo "self讀取:".self::$st."<br>";
    echo "this讀取:".$this::$st."<br>";
}

在類外訪問常量和靜態變量時,只能通過類名訪問。

5.靜態方法和變量

定義靜態變量:修飾符 static 變量名
定義靜態方法:修飾符 static function 函數名(){}

public static $st=666;
public static function setST($type){
    // Person::$st = $type; //靜態字段賦值只能通過self、類名賦值  不可以通過$this
    self::$st = $type;
}

6.常量(const)

定義常量:const 常量名 = 值

訪問常量的方法:

類外:

    echo "類名讀取:".Person::PI."<br>";  //類名訪問

類中:

public function onlyReadConst(){
    echo "const字段:<br>";
    echo "類名讀取:".Person::PI."<br>";
    echo "self讀取:".self::PI."<br>";
    echo "this讀取:".$this::PI."<br>";
}

特別注意:
常量一旦定義就不可以修改其值。

7.屬性操作

自定義:set、get方法

public function getName(){
return $this->name;
}
public function setName($name){
$this->name = $name;
}

Php自帶API:魔法函數 __get(),__set()

public function __get($type){
return $this->$type;
}
public function __set($type,$value){
$this->$type = $value;
}

8.構造函數

(1)自定義構造函數

無參構造體

public function Person(){
echo "自定義無參構造體<br>";
}

自定義有參構造體

public function Person($name,$age=10){
echo "自定義有參構造體<br>";
$this->name = $name;
$this->age = $age;
}

(2)魔法構造函數

API無參構造體

public function __construct(){
echo "API實現無參構造體<br>";
}

API有參構造體

public function __construct($name,$age=100){
echo "魔法函數之有參構造體<br>";
$this->name = $name;
$this->age = $age;
}

特別注意:
在php中一個類有且僅有一個構造函數。

發佈了42 篇原創文章 · 獲贊 56 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章