亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP容器中綁定參數的示例分析

發布時間:2021-01-29 15:50:43 來源:億速云 閱讀:199 作者:小新 欄目:編程語言

這篇文章主要介紹了ThinkPHP容器中綁定參數的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

解析bindParams方法

接下來就解析一下bindParams這個方法。

關于參數傳遞的就是一個反射類   第二個參數暫時不做說明,目前還沒有遇到響應的場景。

第一個參數值$reflect

ThinkPHP容器中綁定參數的示例分析

ThinkPHP容器中綁定參數的示例分析使用反射方法$reflect->getNumberOfParameters()獲取反射類中對應的方法中的參數數目。按照上文的就是__make方法。容器代碼中只獲取過倆個方法的參數數目,一個是__make方法,一個是就是反射類中的構造函數。

由于目前還沒有傳遞vars變量的場景,所以這塊的內容暫時不去研究它直接略過。

代碼$params = $reflect->getParameters();也是使用反射獲取方法的參數。

打印出來可以看到的結果是倆組數據。

ThinkPHP容器中綁定參數的示例分析那么這這組數據是從哪里來的呢!往上翻一下,看一下$reflect這個參數是什么就明白了。

think\App這個反射類是沒有__make方法的,所以會獲取構造函數中的參數。

ThinkPHP容器中綁定參數的示例分析然后think\Log反射類中存在__make方法,于是就會返回__make的參數,如下圖。

ThinkPHP容器中綁定參數的示例分析

就像類似于think\Log這樣的類,既有__make方法,也存在構造函數,就會走倆次bindParams方法,這個應該都明白,正是下圖邏輯。

ThinkPHP容器中綁定參數的示例分析在接下來就是循環反射類中獲取的參數。

獲取參數名、和獲取對應的反射類

最后將獲取出來的反射類傳遞給getObjectParam方法。

ThinkPHP容器中綁定參數的示例分析在這個getObjectParam方法中并沒有多少內容。

由于$vars從頭到尾都是空數組所以去除數組第一個的操作和判斷是否為閉包都不會執行。

最終會在返回去執行make方法

ThinkPHP容器中綁定參數的示例分析然后make方法會直接從容器中返回這個實例

ThinkPHP容器中綁定參數的示例分析當一個反射類存在__make方法時,最終就會執行return $method->invokeArgs(null, $args);,帶參數執行反射類方法

ThinkPHP容器中綁定參數的示例分析使用容器來調用配置類

既然已經把容器源碼讀了一次了,可不可以使用容器來實現呢!

那當然是可以的了,這里需要注意一下咔咔的命名空間,這里由于為了以后回顧方便把類名也起成了Container了,所以給加了一個別名,你們在使用的時候是不需要的哈!

ThinkPHP容器中綁定參數的示例分析

感謝你能夠認真閱讀完這篇文章,希望小編分享的“ThinkPHP容器中綁定參數的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德钦县| 定西市| 黄陵县| 万年县| 渝北区| 中山市| 兴国县| 福鼎市| 和顺县| 文化| 祁阳县| 丽水市| 牙克石市| 会理县| 米脂县| 新巴尔虎右旗| 锦屏县| 天峻县| 西贡区| 富民县| 宜黄县| 临沂市| 石棉县| 小金县| 湟中县| 岚皋县| 曲松县| 资源县| 东方市| 安西县| 马关县| 兴仁县| 郎溪县| 霍城县| 隆昌县| 武义县| 武邑县| 邻水| 新竹市| 江安县| 西丰县|