php 多繼承的幾種常見實現方法示例

 更新時間:2020-01-15 15:59:54   作者:佚名   我要評論(0)

本文實例講述了php 多繼承的幾種常見實現方法。分享給大家供大家參考,具體如下:


class Parent1 {
function method1() {}
function method2() {}
}
class Pa

本文實例講述了php 多繼承的幾種常見實現方法。分享給大家供大家參考,具體如下:

class Parent1 {
  function method1() {}
  function method2() {}
}
class Parent2 {
  function method3() {}
  function method4() {}
}
class Child {
  protected $_parents = array();
  public function Child(array $parents=array()) {
    $this->_parents = $parents;
  }
  public function __call($method, $args) {
    // 從“父類"中查找方法
    foreach ($this->_parents as $p) {
      if (is_callable(array($p, $method))) {
        return call_user_func_array(array($p, $method), $args);
      }
    }
    // 恢復默認的行為,會引發一個方法不存在的致命錯誤
    return call_user_func_array(array($this, $method), $args);
  }
}
$obj = new Child(array(new Parent1(), new Parent2()));
print_r( array($obj) );die;
$obj->method1();
$obj->method3();

運行結果:

Array
(
    [0] => Child Object
        (
            [_parents:protected] => Array
                (
                    [0] => Parent1 Object
                        (
                        )

                    [1] => Parent2 Object
                        (
                        )

                )

        )

)

interface testA{
  function echostr();
}
interface testB extends testA{
  function dancing($name);
}
class testC implements testB{
  function echostr(){
    echo "接口繼承,要實現所有相關抽象方法!";
    echo "<br>";
  }
  function dancing($name){
    echo $name."正在跳舞!";
  }
}
$demo=new testC();
$demo->echostr();
$demo->dancing("模特");

運行結果:

接口繼承,要實現所有相關抽象方法!
模特正在跳舞!

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:

  • PHP Trait代碼復用類與多繼承實現方法詳解
  • PHP接口多繼承及tarits實現多繼承效果的方法
  • PHP接口繼承及接口多繼承原理與實現方法詳解
  • PHP面向對象程序設計之接口的繼承定義與用法詳解
  • 詳細對比php中類繼承和接口繼承
  • php 三大特點:封裝,繼承,多態
  • PHP入門教程之面向對象的特性分析(繼承,多態,接口,抽象類,抽象方法等)
  • PHP中類的繼承和用法實例分析
  • php構造方法中析構方法在繼承中的表現
  • PHP類的封裝與繼承詳解

相關文章

  • php 多繼承的幾種常見實現方法示例

    php 多繼承的幾種常見實現方法示例

    本文實例講述了php 多繼承的幾種常見實現方法。分享給大家供大家參考,具體如下: class Parent1 { function method1() {} function method2() {} } class Pa
    2020-01-15
  • PHP中通過getopt解析GNU C風格命令行選項

    PHP中通過getopt解析GNU C風格命令行選項

    在 PHP 中,當我們在獲取命令行參數時,可以通過遍歷$argv來獲取,其實呢是有規范可循的,也就是 GNU C-style parser for command line options 。 比如使用命令wge
    2020-01-15
  • laravel框架中表單請求類型和CSRF防護實例分析

    laravel框架中表單請求類型和CSRF防護實例分析

    本文實例講述了laravel框架中表單請求類型和CSRF防護。分享給大家供大家參考,具體如下: laravel中為我們提供了綁定不同http請求類型的函數。 Route::get('/test
    2020-01-15
  • php 使用 __call實現重載功能示例

    php 使用 __call實現重載功能示例

    本文實例講述了php 使用 __call實現重載功能。分享給大家供大家參考,具體如下: <&#63;php /** * Created by PhpStorm. * User: funco * Date: 17-6-9 * Tim
    2020-01-15
  • laravel框架中視圖的基本使用方法分析

    laravel框架中視圖的基本使用方法分析

    本文實例講述了laravel框架中視圖的基本使用方法。分享給大家供大家參考,具體如下: laravel中的視圖默認保存在 resources\views 目錄下。在控制器中,我們通常使用
    2020-01-15
  • php傳值和傳引用的區別點總結

    php傳值和傳引用的區別點總結

    php傳值:在函數范圍內,改變變量值得大小,都不會影響到函數外邊的變量值。 PHP傳引用:在函數范圍內,對值的任何改變,在函數外部也有所體現,因為傳引用傳的是內
    2020-01-15
  • PhpStorm 如何優雅的調試Hyperf的方法步驟

    PhpStorm 如何優雅的調試Hyperf的方法步驟

    前言: 我也是昨晚看了黃島主的直播后學會的這個方法,今天中午趁著休息時間,把這個技巧分享給大家。就是大家在調試 Hyperf 的時候,可能總需要做一些服務的重啟,
    2020-01-15
  • 關于Laravel參數驗證的一些疑與惑

    關于Laravel參數驗證的一些疑與惑

    驗證器怎么創建的,誰創建的 Laravel 文檔調用驗證器,除了通過控制器,還有就是通過Facades的方式創建驗證器對象。Validator::make($data,$rule,$message)。 confi
    2020-01-15
  • 使用PHP開發留言板功能

    使用PHP開發留言板功能

    首先我不是一名開發人員,只是一名小小的運維工程師,PHP是我自己喜歡的一門開發語言,所以我偶爾也會敲一些代碼,寫一些案例。今天我給大家分享的是使用PHP開發的留
    2020-01-15
  • PHP讀取Excel內的圖片(phpspreadsheet和PHPExcel擴展庫)

    PHP讀取Excel內的圖片(phpspreadsheet和PHPExcel擴展庫)

    今天接到了一個從Excel內讀取圖片的需求,在網上查找了一些資料,基本實現了自己的需求,不過由于查到的一些代碼比較久遠,不能直接移植到自己的項目里,需要稍加改
    2020-01-15

最新評論

老快3投注技巧