<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                Definition類允許程序員在類運行時動態的構建和注冊類型(屬性??)。 如果定義替換現有的類,則在銷毀定義時將還原現有的類 ``` final Componere\Definition extends Componere\Abstract\Definition { /* Constructors */ public __construct ( string $name )//name:不區分大小寫的類名 public __construct ( string $name , string $parent )//parent:不區分大小寫的類名 public __construct ( string $name , array $interfaces )//interfaces:不區分大小寫的類名數組 public __construct ( string $name , string $parent , array $interfaces ) /* 方法 */ public addConstant ( string $name , \Componere\Value $value ) : Definition 添加常量 public addProperty ( string $name , \Componere\Value $value ) : Definition 添加屬性 public register ( void ) : void 注冊 public isRegistered ( void ) : bool 狀態檢測 public getClosure ( string $name ) : \Closure 獲取指定閉包 public getClosures ( void ) : array 獲取全部閉包 /* 繼承的方法 */ public Componere\Abstract\Definition::addInterface ( string $interface ) : Definition 添加接口 public Componere\Abstract\Definition::addMethod ( string $name , \Componere\Method $method ) : Definition 添加方法 public Componere\Abstract\Definition::addTrait ( string $trait ) : Definition 添加Trait public Componere\Abstract\Definition::getReflector ( void ) : \ReflectionClass 反射 } name:不區分大小寫的類名 parent:不區分大小寫的類名 interfaces:不區分大小寫的類名數組 ``` 在本例中,一個子類將擴展一個“final”類(通常情況下final類是不能有子類的,我們可以通過Componere實現子類繼承它),并添加一個方法。對象實例將能夠訪問父成員,并且被識別為動態創建的子類及其父類的實例。 ``` declare(strict_types=1); /* * Final類通常會阻止擴展子類 */ final class ParentC { public $parentvar; public $name; function __construct() { $this->parentvar = get_class().'_value'; } function parentfunc() { echo get_class().'類->parentfunc方法輸出: '.$this->parentvar; echo '<br>'; } } /* * 動態定義一個繼承與ParentC的類 DynamicSon */ $DefClass = new \Componere\Definition( 'DynamicSon', 'ParentC'); // 用Method類擴展子類的方法'DynamicSon::dynamicfunc()'. $DefMethod = new Componere\Method( function( $parm = null ) { // 填充父類屬性. if (empty($parm)) { $this->name =get_class().'->dynamicfunc'; }else{ $this->name = $parm; } // 訪問父構造函數設置的繼承屬性. echo get_class().'類->dynamicfunc方法輸出: '.$this->parentvar.'<br>'; } ); $DefClass->addMethod( 'dynamicfunc', $DefMethod ); // 注冊子類 $DefClass->register(); /* * 實例化動態子類,并訪問它自己的和繼承的成員. */ $dynamicSon = new DynamicSon; $dynamicSon->parentfunc();//調用父類方法 $dynamicSon->dynamicfunc( 'haha'); var_dump( $dynamicSon ); ``` 輸出: ``` ParentC類->parentfunc方法輸出: ParentC_value DynamicSon類->dynamicfunc方法輸出: ParentC_value object(DynamicSon)#3 (2) { ["parentvar"]=> string(13) "ParentC_value" ["name"]=> string(4) "haha" } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看