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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 3-2 類自動載入 最早的PHP是通過手動的 `include` 或 `require` 來載入依賴的文件的。如果依賴的文件越來越多,比如需要依賴幾十個類文件,就需要手動 `include` 或 `require` 幾十行。這樣管理起來其實很不方便,而且某個類如果刪除了,也會導致致命的錯誤。 因此,在PHP5.1.2之后就提供了類的自動載入功能。 出處:[PHP:類的自動加載](http://php.net/manual/zh/language.oop5.autoload.php) ### 1. 準備: 手動載入實例 *D:\wamp\www\demo\oop\test1.php* ~~~ <?php namespace Test1; class Test { static function test() { echo __METHOD__; } } ~~~ *D:\wamp\www\demo\oop\test2.php* ~~~ <?php namespace Test2; class Test { static function test() { echo __METHOD__; } } ~~~ *D:\wamp\www\demo\oop\test.php* ~~~ <?php require "./test1.php"; require "./test2.php"; Test1\Test::test(); echo "</br>"; Test2\Test::test(); ~~~ 輸出結果: ~~~ Test1\Test::test Test2\Test::test ~~~ 我們使用的`require`引入了類,下面我們將不再使用`require`手動引入類文件,而是使用`__autoload__`自動加載類文件。 [`__autoload__`嘗試加載未定義的類](http://php.net/manual/zh/function.autoload.php) ### 2. 使用__autoload__實現自動加載 > 注意:PSR-0 規定類名要和文件名一致,所以下面我們也將類文件的首字母大寫了,因為我們在自動加載時,會自動獲取未定義的類名作為參數,來載入對應的類。 *D:\wamp\www\demo\oop\test.php* ~~~ <?php Test1::test(); echo "</br>"; Test2::test(); function __autoload($class) { require __DIR__ . '/' . $class . '.php'; } ~~~ *D:\wamp\www\demo\oop\Test1.php* ~~~ <?php class Test1 { static function test() { echo __METHOD__; } } ~~~ *D:\wamp\www\demo\oop\Test2.php* ~~~ <?php class Test2 { static function test() { echo __METHOD__; } } ~~~ 輸出結果: ~~~ Test1::test Test2::test ~~~ 可以看到,我們現在不需要手動加載類了,就自動加載到文件中。 但該方法后面慢慢廢棄了,因為如果1個文件都重復定義了`__autoload__`,就會報2個函數重名的錯誤。 于是出現了 [spl_autoload_register()](http://php.net/manual/zh/function.spl-autoload-register.php) 取代 `__autoload__` 。它的特點是允許在1個PHP文件中出現多次。 ### 3. spl_autoload_register()實現自動載入 *D:\wamp\www\demo\oop\test.php* 改進后: ~~~ <?php spl_autoload_register('autoload'); // 該函數可以在1個PHP文件中出現多次 Test1::test(); echo "</br>"; Test2::test(); function autoload($class) { require __DIR__ . '/' . $class . '.php'; } ~~~
                  <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>

                              哎呀哎呀视频在线观看