亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

tp5.1中Config的set方法不是靜態的了,為什么要這么設計?

下圖是tp5.1中的Config類代碼片段

https://img1.sycdn.imooc.com//5aeb79500001ea8f09190787.jpg

下圖是tp5.0.12中Config類的代碼片段,摘自[github](https://github.com/top-think/framework/blob/v5.0.12/library/think/Config.php)

https://img1.sycdn.imooc.com//5aeb7a61000141d207110482.jpg

正在回答

3 回答

因為ThinkPHP5.1多了一個facadel類

門面(Facade)為容器中的類提供了一個靜態調用接口,相比于傳統的靜態方法調用, 帶來了更好的可測試性和擴展性,你可以為任何的非靜態類庫定義一個facade類。

系統已經為大部分核心類庫定義了Facade,所以你可以通過Facade來訪問這些系統類,當然也可以為你的應用類庫添加靜態代理。

只要這個類庫繼承think\Facade,就可以使用靜態方式調用動態類app\common\Test的動態方法,例如上面的代碼就可以改成:

//?無需進行實例化?直接以靜態方法方式調用hello
echo?\app\facade\Test::hello('thinkphp');

結果也會輸出?hello,thinkphp。

說的直白一點,Facade功能可以讓類無需實例化而直接進行靜態方式調用。

參考網址http://www.php.cn/manual/view/32830.html,ThinkPHP5.1核心Facade類庫相關

0 回復 有任何疑惑可以回復我~
#1

edgex 提問者

非常感謝!
2018-05-22 回復 有任何疑惑可以回復我~
大神們我想問下?這個config::get()?方法?我調用出來的和tp5.0?不一樣啊,5.0可以寫參數?但是5.1我里面寫參數返回值是null


0 回復 有任何疑惑可以回復我~

不好意思,我是菜鳥

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

tp5.1中Config的set方法不是靜態的了,為什么要這么設計?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號