亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP類相關知識點有哪些

發布時間:2021-09-01 09:49:30 來源:億速云 閱讀:145 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關PHP類相關知識點有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體如下:

最終類與最終方法

如果父類中的方法被聲明為 final,則子類無法覆蓋該方法。如果一個類被聲明為 final,則不能被繼承。

final class a{}
class a{
  final public function A(){}
}

抽象類與抽象方法

abstract class a {
  public abstract function func();
}
class A extends a{
  public function func(){}
}

① 一個類可以使用abstract聲明為抽象類;抽象類是不能實例化的類,只用作其他類的父類。

abstract class name{}

② 一個方法可以使用abstract聲明為抽象方法;抽象方法只需要聲明方法頭,不需要大括號部分的方法體。

abstract public function name($val);

③ 一個類中有抽象方法,則該類必須聲明為抽象類。

④ 子類繼承自一個抽象類,則子類不行實現父類中的所有抽象方法,除非子類也繼續作為抽象類。

⑤ 子類實現抽象父類的方法時,訪問控制符范圍不能降低,且方法的參數也必須一致(重寫)。

接口

接口可以看作是抽象類的更高層面的抽象,可以說是抽象類的特例

interface a{
  function func();
}
class A implements a {
  function func(){}
}

類:屬性、類常量、方法

抽象類:屬性、類常量、抽象方法

接口:接口常量、抽象方法

① 相比抽象類,接口可實現‘多繼承'

class A implements a,b,c{}

② 一個接口只能繼承一個接口

interface a extends b{}

③ 其中方法都是抽象方法不用abstract修飾,即下級類要么實現接口的方法(implements),要么也聲明為抽象方法

重載技術

1. 屬性重載:如果使用一個不存在的屬性,就會調用類中預先定義好的某個方法以處理數據;

對于屬性不用的應用場景,做如下處理

① 取值:自動調用類中的__get()
② 賦值:自動調用類中的__set()
③ 判斷是否存在:自動調用類中的__isset()
④ 銷毀:自動調用類中的__unset()

前提是預先定義好這些方法,否則會報錯

<?php
class bee{
  public $ol = array();
  public function __get($key){
    if(isset($this->ol[$key])){
      return $this->ol[$key];
    }
    return $key.' not exists';
  }
  public function __set($key,$val){
    $this->ol[$key] = $val;
  }
  public function __isset($key){
    if(isset($this->ol[$key])){
      return true;
    }
    return false;
  }
  public function __unset($key){
    unset($this->ol[$key]);
  }
}
$obj = new bee();
echo $obj->one;
echo '<br>';
$obj->one = 1;
echo $obj->one;
echo '<br>';
var_dump(isset($obj->one));

運行結果如下:

one not exists
1
boolean true

2. 方法重載:如果使用一個不存在的方法,就會調用類中預先定義好的某個方法以處理該行為;

對于方法不用的應用場景,做如下處理

① 在對象中調用不可訪問的方法:__call()
② 靜態方式中調用不可訪問方法:__callStatic()

<?php
class bee{
  public function __call($name,$arr){
    echo '<br>';
    echo 'function '.$name.' not exist';
  }
  static function __callStatic($name,$arr){
    echo '<br>';
    echo 'function '.$name.' not exist';
  }
  /*public function __call($name,$arr){
    $num = count($arr);
    if($num<1){
      $name();
    }else{
      $name = $name.'_one';
      $name($arr[0]);
    }
  }*/
}
$obj->func();
bee::staFunc();
/*$obj->func(1);
function func(){
  echo '<br>';
  echo 'no.0';
}
function func_one($val){
  echo '<br>';
  echo 'no.'.$val;
}*/

運行結果如下:

function func not exist
function staFunc not exist

注意:以上方法都屬于魔術方法,都帶有參數

感謝各位的閱讀!關于“PHP類相關知識點有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

新巴尔虎右旗| 安龙县| 沈丘县| 松桃| 司法| 慈利县| 高碑店市| 北辰区| 郸城县| 临西县| 蕉岭县| 徐水县| 保靖县| 青铜峡市| 高密市| 确山县| 兴仁县| 平凉市| 万全县| 磐安县| 夏津县| 宁强县| 武定县| 南充市| 永登县| 三原县| 贵阳市| 揭阳市| 图们市| 天镇县| 黎平县| 廉江市| 如东县| 千阳县| 乳山市| 资讯| 辉县市| 连山| 忻城县| 镇原县| 通山县|