閱界資訊

PHP Trait 爲何可能成爲語言的關鍵特性

閱閱界編輯部1閱讀5分鐘

《PHP Trait 爲何可能成爲語言的關鍵特性》這篇在博客園熱度很高,講的正是大家天天碰到的事。下面幫你把要點捋出來,結尾有能直接抄的結論。

PHP Trait 爲何可能成爲語言的關鍵特性 PHP 社區對 Trait 一向談不上偏愛。它們常被視爲隱式行爲的來源。既然如此,Trait 爲何依然值得重視? Trait 大概是 PHP 中唯一可以被歸入元編程工具集的特性。它允許在程序真正開始使用某個類之前改變該類的結構,實際上就是把方法、屬性和常量注入目標類。 當然,Lisp 這類語言,以及 Elixir 這類更現代的語言,都提供了遠比 PHP 強大的元編程設施。 但 PHP 的 Trait 具備一個許多同類機制所缺乏的特性:極低的認知負擔。

PHP Trait 爲何可能成爲語言的關鍵特性 PHP 社區對 Trait 一向談不上偏愛。它們常被視爲隱式行爲的來源。既然如此,Trait 爲何依然值得重視? Trait 大概是 PHP 中唯一可以被歸入元編程工具集的特性。它允許在程序真正開始使用某個類之前改變該類的結構,實際上就是把方法、屬性和常量注入目標類。 當然,Lisp 這類語言,以及 Elixir 這類更現代的語言,都提供了遠比 PHP 強大的元編程設施。 但 PHP 的 Trait 具備一個許多同類機制所缺乏的特性:極低的認知負擔。 它的模型非常簡單: [代碼示例略] 完成組合之後,在閱讀 User 類時,幾乎可以把它當作是這樣寫成的: [代碼示例略] 除少數衝突解決規則之外,類與 Trait 的組合就只是類中定義的一切與 Trait 中定義的一切的簡單疊加。

PHP Trait 爲何可能成爲語言的關鍵特性 PHP 社區對 Trait 一向談不上偏愛。它們常被視爲隱式行爲的來源。既然如此,Trait 爲何依然值得重視? Trait 大概是 PHP 中唯一可以被歸入元編程工具集的特性。它允許在程序真正開始使用某個類之前改變該類的結構,實際上就是把方法、屬性和常量注入目標類。 當然,Lisp 這類語言,以及 Elixir 這類更現代的語言,都提供了遠比 PHP 強大的元編程設施。 但 PHP 的 Trait 具備一個許多同類機制所缺乏的特性:極低的認知負擔。 它的模型非常簡單: [代碼示例略] 完成組合之後,在閱讀 User 類時,幾乎可以把它當作是這樣寫成的: [代碼示例略] 除少數衝突解決規則之外,類與 Trait 的組合就只是類中定義的一切與 Trait 中定義的一切的簡單疊加。 這一規則易於記憶,也相對容易推理。

PHP Trait 爲何可能成爲語言的關鍵特性 PHP 社區對 Trait 一向談不上偏愛。它們常被視爲隱式行爲的來源。既然如此,Trait 爲何依然值得重視? Trait 大概是 PHP 中唯一可以被歸入元編程工具集的特性。它允許在程序真正開始使用某個類之前改變該類的結構,實際上就是把方法、屬性和常量注入目標類。 當然,Lisp 這類語言,以及 Elixir 這類更現代的語言,都提供了遠比 PHP 強大的元編程設施。 但 PHP 的 Trait 具備一個許多同類機制所缺乏的特性:極低的認知負擔。 它的模型非常簡單: [代碼示例略] 完成組合之後,在閱讀 User 類時,幾乎可以把它當作是這樣寫成的: [代碼示例略] 除少數衝突解決規則之外,類與 Trait 的組合就只是類中定義的一切與 Trait 中定義的一切的簡單疊加。 這一規則易於記憶,也相對容易推理。 元編程之所以從未成爲大多數程序員的日常工具,原因之一在於:很難理解一個元程序究竟如何改造程序本身。

PHP Trait 爲何可能成爲語言的關鍵特性 PHP 社區對 Trait 一向談不上偏愛。它們常被視爲隱式行爲的來源。既然如此,Trait 爲何依然值得重視? Trait 大概是 PHP 中唯一可以被歸入元編程工具集的特性。它允許在程序真正開始使用某個類之前改變該類的結構,實際上就是把方法、屬性和常量注入目標類。 當然,Lisp 這類語言,以及 Elixir 這類更現代的語言,都提供了遠比 PHP 強大的元編程設施。 但 PHP 的 Trait 具備一個許多同類機制所缺乏的特性:極低的認知負擔。 它的模型非常簡單: [代碼示例略] 完成組合之後,在閱讀 User 類時,幾乎可以把它當作是這樣寫成的: [代碼示例略] 除少數衝突解決規則之外,類與 Trait 的組合就只是類中定義的一切與 Trait 中定義的一切的簡單疊加。 這一規則易於記憶,也相對容易推理。 元編程之所以從未成爲大多數程序員的日常工具,原因之一在於:很難理解一個元程序究竟如何改造程序本身。 Trait 在這方面的問題要小得多。

行動建議:收藏這篇,下次碰到同類問題先翻出來對照做一遍。好經驗的價值,在於用起來。你最近被這類問題卡過嗎? 來源|博客園《PHP Trait 爲何可能成爲語言的關鍵特性》,https://www.cnblogs.com/catchadmin/p/22977112.html

工具方法工具实践

評論(0)

暫無評論,來搶第一條。