- 以往在需要给方法传入一个复杂数据的时候,在方法内使用如果传入的是数组,需要经常返回查找需要的Key,如果是对象则需要返回去查看类的属性名,Ide豪无提示,编码体验极差。日复一日,项目就会慢慢往“屎”的方向发展。
- 定义静态类型可以很好的解决这个问题,让接手你代码的人顺手拈来,不在背后骂你的代码“屎”一样
开始定义用户逻辑处理类: 引入的类在这里
<?php
require_once 'User.php';
require_once 'UserArrStruct.php';
// 用户操作类
class UserLogic
{
/** 一个获取用户信息的方法
* @param int $userId
* @return User
*/
public function getUserInfo(int $userId): User
{
return new User('李白' . $userId, '108', '男');
}
/** 一个获取用户列表的方法
* @return UserArrStruct
*/
public function getUserList(): UserArrStruct
{
$liBai = new User('李白', '108', '男');
$xiaoQ = new User('小乔', '120', '女');
$userArr = [$liBai, $xiaoQ];
// 实例化严格可迭代对象并赋值
return new UserArrStruct($userArr);
}
/** 一个设置用户信息的方法
* @param User $userInfo
* @return bool
*/
public function setUserInfo(User $userInfo): bool
{
$userInfo->name = 'PHP YYDS';
return true;
}
}
内部接收对象使用情况:ide非常友好
外部返回对象情况
外部返回迭代对象情况
总结
灵活使用静态类型进行编码可增加代码可读性,想查看返回值数据结构可直接进入对应类文件查看属性即可,无需一行行看代码然后新建Key然后赋的什么值,大大减低后期维护成本。
评论