寫了一段時間的java之后,特別不習慣PHP本身的弱類型方式,在寫代碼的時候總覺得不怎么放心,特別本身PHP又是弱類型的語言,所以在編碼的時候,很多時候是沒有代碼提示的。
一個一般例子? ? ? ? ? ? ? ? ? ? ? ? (推薦學習:phpstorm詳解)
class?Data?{ ??public?$name; ??public?$gender; ??public?$age; ??public?function?__construct($name,$gender,$age)?{ ????$this->name?=?$name; ????$this->gender?=?$gender; ????$this->age?=?$age; ??} } class?Test?{ ??public?function?run()?{ ????$data?=?[ ??????new?Data('張三','男',18), ??????new?Data('李四','男',14), ??????new?Data('王五','男',17), ??????new?Data('大姨媽','女',23), ????]; ??} ??private?function?eachData($data)?{ ????foreach($data?as?$item)?{ ??????echo?$item->name.'=>'.$item->gender.'=>'.$item->age."n"; ????} ??} } (new?Test)->run();
以上例子來看,一般來說其實也是不存在什么問題的,但是在編寫
cho?$item->name.'=>'.$item->sex.'=>'.$item->age."n";
這段代碼的時候,在調用屬性的時候是沒有自動提示的,那么數據量大的時候需要往上翻然后進行copy或者編寫下來,降低編碼速度,而且有時候心里還沒譜,怕寫錯。
立即學習“PHP免費學習筆記(深入)”;
以下是我寫的一個完整的利用注釋和本身PHP特性的例子:
class?Data?{ ??public?$name; ??public?$gender; ??public?$age; ??public?function?__construct($name,$gender,$age)?{ ????$this->name?=?$name; ????$this->sex?=?$gender; ????$this->age?=?$age; ??} } class?Test?{ ??public?function?run()?{ ????$data?=?[ ??????new?Data('張三','男',18), ??????new?Data('李四','男',14), ??????new?Data('王五','男',17), ??????new?Data('大姨媽','女',23), ????]; ??} ??/** ???*?遍歷輸出數據 ???*?@param?array?$data ???*/ ??private?function?eachData($data)?{ ????foreach($data?as?$item)?{ ??????if($item?instanceof?Data)?{ ????????echo?$item->name.'=>'.$item->gender.'=>'.$item->age."n"; ??????} ????} ??} } (new?Test)->run();
這里主要的是加了一個if判斷,判斷數據類型是否是Data的一個具體實例;
在這個地方,phpstorm會根據這個判斷在做$item屬性調用的時候會有自動提示,非常的方便。
思考
從這里得到的一些思考,那就是我們在編寫程序的時候可以更好的考慮嚴謹性,從上面的例子來看,這樣子做了,再加一些錯誤處理機制,能更好的保證數據的安全性和完整性,不僅僅是編輯器提示的方便。
后續再做代碼檢查和跟蹤的時候,將也是一件非常方便的事情,而且業務邏輯也更清晰。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END