# PHP的編碼技巧和思維
> 許多開發者不會利用到他們使用的編程語言的全部功能。很多功能能夠節約你們的的時間,而且能夠讓你們的代碼更健壯。看下下面的示例,注意如何在更少代碼情況下更容易達到相同的結果的,通過使用類型提示。
實例1:
```php
public function calcDiscount(string $name, int $age):array
{
return [
'name' => $name,
'age' => $age
];
}
```
示例2進行對比:
```php
public function calcDiscount($name, $age)
{
if (!\is_string($name)) {
throw new \Exception('name is not valid');
}
if (!\is_int($age)) {
throw new \Exception('age is not valid');
}
$formattedInfo = array();
$formattedInfo['name'] = $name;
$formattedInfo['age'] = $age;
return $formattedInfo;
}
```
還有一些更好編碼的快速提示:
- 使用心得數組形式`[]`代替舊的`array()`
- 除非不檢查數據類型很重要,否則使用`===`操作符替代`==`
- 僅對實現接口得方法使用通用名稱例如`add()`,并對單個類方法使用描述性名稱,如:`addUser()`
- 從類中刪除未使用的方法
- 對返回值類型為`boolean`的函數使用`is/has`前綴
- 始終在類方法和屬性中使用訪問修飾符
- 注意接口污染,僅使用用戶可以公開使用的方法
- 始終在類中應用單一職責的概念
- PHP獲取客戶端瀏覽器信息和版本
- PHP獲取客戶端操作系統信息
- 無限級分類
- git使用
- 權限檢測思路
- Vue學習
- 遇到的一些問題
- PHP的編碼思維和技巧
- mysql復習
- tp5
- ThinkPHP5.x 公共函數
- TP5登錄注冊
- TP5使用模板繼承
- ThinkPHP5.1 清除緩存
- thinkphp5實現安裝程序
- 安全
- tp中實現跨域代碼
- ThinkPHP5.1配合pjax實現菜單欄無刷新跳轉
- 獲取數據庫版本和數據庫大小
- 模型的基本CURD操作
- 商品spu
- 全局異常處理類
- ExceptionHandler
- BaseException
- PHP函數之error_reporting(E_ALL ^ E_NOTICE)詳細說明
- 微信小程序
- wx:for
- tp6
- 分離的一些模塊
- session開啟
- Spring
- 依賴注入
- 數據結構
- 二叉樹
- js獲取地址欄變量
- PHP設計模式
- 面向對象
- PHP1
- PHP性能優化
- Java學習
- static關鍵字
- 多態
- 接口、階乘
- 大佬給的面試題
- 訪問量為5000萬的博客系統設計
- PHP可變參數
- Nginx的配置案例
- 求數組中的最大值,并返回數組索引
- PHP面試方向
- PHP數組工具類ArrUtil
- 字符串工具類StrUtil
- PHP使用curl發送請求
- mysql
- PHP上傳base64圖片處理函數
- webstorm小程序常用配置
- 郵箱正則表達式
- leetcode mysql記錄
- 函數庫