<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之旅 廣告
                # 依賴注入 ## 依賴注入也叫控制反轉 1. 依賴注入主要是用來減少代碼間的耦合 2. 有效分離對象和它所需的外部資源 由于訪問控制器的參數都來自于URL請求,普通變量就是通過參數綁定自動獲取,對象變量則是通過依賴注入生成。 假設有人需要買車需要花費xx元 t同樣為了簡化測試 在extend目錄創建di文件夾 #### 首先創建Car.php類 方法中返回需要話費多少錢 ``` <pre class="calibre13">``` <span class="token"><</span><span class="token">?</span>php namespace di<span class="token1">;</span> <span class="token2">class</span> <span class="token3">Car</span> <span class="token1">{</span> <span class="token2">public</span> <span class="token2">function</span> <span class="token3">pay</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token6">// 價格123</span> <span class="token2">return</span> <span class="token5">123</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` #### 創建Person類 創建buy方法 去調用pay方法的價格 ``` <pre class="calibre13">``` <span class="token"><</span><span class="token">?</span>php namespace di<span class="token1">;</span> <span class="token2">class</span> <span class="token3">Person</span> <span class="token1">{</span> <span class="token6">/** * 依賴:Person類依賴Car類 * 注入:Car類注入Person 因為Car類不是固定的 * 因為可能不只是買車 可能還是買其他 所以是其他注入Person * @return */</span> <span class="token2">public</span> <span class="token2">function</span> <span class="token3">buy</span><span class="token1">(</span>$obj<span class="token1">)</span> <span class="token1">{</span> <span class="token6">// $price = new Car();</span> <span class="token6">//return $price->pay(); //獲取價格</span> <span class="token2">return</span> $obj<span class="token">-</span><span class="token">></span><span class="token3">pay</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` 在 首頁控制器中調用 ``` <pre class="calibre13">``` <span class="token"><</span><span class="token">?</span>php namespace app\index\controller<span class="token1">;</span> use di\Book<span class="token1">;</span> use di\Car<span class="token1">;</span> use di\Person<span class="token1">;</span> <span class="token2">class</span> <span class="token3">Index</span> <span class="token1">{</span> <span class="token2">public</span> <span class="token2">function</span> <span class="token3">index</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token6">// $PersonObj = new Person();</span> <span class="token6">//return $PersonObj->buy();</span> $PersonObj <span class="token">=</span> <span class="token2">new</span> <span class="token3">Person</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $book <span class="token">=</span> <span class="token2">new</span> <span class="token3">Book</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> <span class="token2">return</span> $PersonObj<span class="token">-</span><span class="token">></span><span class="token3">buy</span><span class="token1">(</span>$book<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` 因為 Book.php Car.php Person.php三個文件 都在di文件下 所以可以直接使用new來調用
                  <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>

                              哎呀哎呀视频在线观看