详解PHP如何更好的利用PHPstorm的自动提示


Posted in PHP onAugust 18, 2017

说明

写了一段时间的java之后,特别不习惯PHP本身的弱类型方式,在写代码的时候总觉得不怎么放心,特别本身PHP又是弱类型的语言,所以在编码的时候,很多时候是没有代码提示的。

一个一般例子

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特性的例子:

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属性调用的时候会有自动提示,非常的方便。

思考

从这里得到的一些思考,那就是我们在编写程序的时候可以更好的考虑严谨性,从上面的例子来看,这样子做了,再加一些错误处理机制,能更好的保证数据的安全性和完整性,不仅仅是编辑器提示的方便。

后续再做代码检查和跟踪的时候,将也是一件非常方便的事情,而且业务逻辑也更清晰。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
新版PHP将向Java靠拢
Oct 09 PHP
改进的IP计数器
Oct 09 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
PHP网络操作函数汇总
May 18 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
php自定义分页类完整实例
Dec 25 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
PHP工厂模式简单实现方法示例
May 23 PHP
Laravel学习教程之本地化模块
Aug 18 #PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 #PHP
Laravel学习教程之路由模块
Aug 18 #PHP
Django中的cookie与session操作实例代码
Aug 17 #PHP
Django 中 cookie的使用
Aug 17 #PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 #PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
Aug 17 #PHP
You might like
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
php简单获取复选框值的方法
2016/05/11 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
brook javascript框架介绍
2011/10/10 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
python如何读取bin文件并下发串口
2019/07/05 Python
python 获取计算机的网卡信息
2021/02/18 Python
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
请假条标准格式规范
2014/04/10 职场文书
会议室标语
2014/06/21 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
写给医生的感谢信
2015/01/22 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
春秋淹城导游词
2015/02/11 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
Redis入门基础常用操作命令整理
2022/06/01 Redis
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server