<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [**include**](https://www.php.net/manual/zh/function.include.php) 和 [**require**](https://www.php.net/manual/zh/function.require.php) 是 PHP 中引入文件的兩個基本方法。小規模開發中可直接使用,但在大型項目中會造成大量的 `include` 和 `require` 堆積,這樣的代碼執行效率低、維護困難。 為了解決這個問題,部分框架會給出一個引入文件的配置清單,在對象初始化的時候把需要的文件引入。但這只是讓代碼變得更簡潔了一些,引入的效果仍然是差強人意。PHP5 之后,隨著 PHP 面向對象支持的完善,[**__autoload**](https://www.php.net/manual/zh/function.autoload.php) 函數才真正使得自動加載成為可能。 - `include `和 `require `功能一樣,不同點在于 `include `出錯時只會產生警告,而 `require `會拋出錯誤終止腳本 - `include_once `和 `include `唯一的區別在于 `include_once `會檢查文件是否已經引入,如果是則不會重復引入 ## 自動加載 實現自動加載最簡單的方式就是使用 `__autoload` 魔術方法。當需要使用的類沒有被引入時,這個函數會在 PHP 報錯前被觸發,未定義的類名會被當作參數傳入。 簡單測試: ~~~php <?php // 使用未定義的類時,系統自動調用 function __autoload($calss){ echo $calss, PHP_EOL; } new Test(); /** * 輸出: * Test * PHP Fatal error: Class 'HelloWorld' not found in ………… */ ~~~ > ps:`__autoload()` 函數已自 PHP 7.2.0 起被*廢棄*,并自 PHP 8.0.0 起被*移除*。使用 [spl_autoload_register()](https://www.php.net/manual/zh/function.spl-autoload-register.php) 函數替代 實現一個簡單自動加載: test.php ~~~php <?php class Test { function __construct(){ echo '自動加載:', __CLASS__; } } ~~~ ~~~php <?php function autoload($class){ $file = $class . '.php'; if (file_exists($file)) { // 引入PHP文件 include $file; } } spl_autoload_redister('autoload'); new Test(); /** * 輸出:自動加載:Test */ ~~~ ## 命名空間 一種標識,它的主要目的是解決命名沖突的問題。 命名空間通過關鍵字 `namespace `來聲明。如果一個文件中包含命名空間,它必須在其它所有代碼之前聲明命名空間 ~~~php <?php namespace Test1; class HelloWord { public function __construct() { echo ‘Test1 下的 HelloWord’, PHP_EOL; } } ?> ----------------------------------------------- <?php namespace Test2; class HelloWord { public function __construct() { echo ‘Test2 下的 HelloWord’, PHP_EOL; } } ?> ------------------------------------------------- <?php new Test1/HelloWord(); new Test2/HelloWord(); ~~~ ## PSR-4 自動加載規范 https://learnku.com/docs/psr/psr-4-autoloader/1608
                  <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>

                              哎呀哎呀视频在线观看