# 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记录
- 函数库