详解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 相关文章推荐
php5 mysql分页实例代码
Apr 10 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
让PHP更快的提供文件下载的代码
Jun 13 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
php截取中文字符串函数实例
Feb 23 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
深入理解PHP变量的值类型和引用类型
Oct 21 PHP
php支持断点续传、分块下载的类
May 02 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
Yii2框架redis基本应用示例
Jul 13 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过滤黑名单关键字的方法
2014/12/01 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
php实现图片压缩处理
2020/09/09 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
python操作mysql数据库
2017/03/05 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
Python流程控制 while循环实现解析
2019/09/02 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
店长岗位的工作内容
2013/11/12 职场文书
标准自荐信范文
2014/01/29 职场文书
教师个人鉴定材料
2014/02/08 职场文书
西安大雁塔导游词
2015/02/10 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python