<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 類的自動加載 include和require關鍵字是通過手動方式對對應文件進行包含,實際上php提供了一個更方便的,類的自動加載方法 通過魔術方法 `__autoload(string $class)` 實現,也可以通過函數 `spl_autoload_register` 注冊一個自動加載方法 ~~~ function __autoload($class) { require_once($class.".php"); } ~~~ 通常用spl_autoload_register注冊自定義的函數作為自動加載類實現,因為`__autoload()`魔術方法只可以定義一次 # laravel中的使用 類的自動加載函數是在Composer\Autoload\ClassLoader類中實現的,實例化該類并將類的命名空間與文件路徑的對應關系注冊到相應屬性中,然后通過實例方法 `register($prepend=false)` 注冊一個類自動加載函數,即為該類實例的loadClass方法,并且將其注冊在類自動加載函數隊列的末尾,當使用一個為包含的類名時,會自動調用loadClass方法并通過參數獲取包含命名空間的類名信息,接著根據類的命名空間與文件路徑的對應關系查找文件路徑,最后通過includeFile()函數包含該文件,實現類的自動加載 默認laravel包含2個類的自動加載函數,其中一個是在外觀注冊(`Illuminate\Foundation\Bootstrap\RegisterFacades`類實現的)過程中實現的,在注冊過程中也是先實例化后調用register()函數,進而調用prependToLoaderStack()函數,將`load($alias)`函數注冊為類的自動加載函數,該函數的作用主要是將外觀別名與外觀名(Facades)對應起來,從而實現對應外觀類的靜態方法調用 ~~~ <?php namespace Illuminate\Foundation; class AliasLoader { //加載一個類別名,實際上是給外觀類起了一個別名,使兩者對應一個類 public function load($alias) { if (isset($this->aliases[$alias])) { return class_alias($this->aliases[$alias], $alias); } } //添加別名到自動加載函數中 public function alias($class, $alias) { $this->aliases[$class] = $alias; } //注冊自動加載函數到自動加載堆棧中 public function register() { if (! $this->registered) { $this->prependToLoaderStack(); $this->registered = true; } } //將類的自動加載函數添加到自動加載堆棧首部 protected function prependToLoaderStack() { spl_autoload_register([$this,'load'],true,true); } } ~~~
                  <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>

                              哎呀哎呀视频在线观看