详解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 allow_url_include的应用和解释
Apr 22 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
php字符串函数学习之strstr()
Mar 27 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
PHP实现的二分查找算法实例分析
Dec 19 PHP
stripos函数知识点实例分享
Feb 11 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 PHP
php swoft框架实例用法
Dec 22 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防止sql注入之过滤分页参数实例
2014/11/03 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
JS中setTimeout()的用法详解
2013/04/14 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
jQuery动态添加
2016/04/07 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
python中property和setter装饰器用法
2019/12/19 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
单位单身证明范本
2014/01/11 职场文书
推广活动策划方案
2014/08/23 职场文书
2014年团工作总结
2014/11/27 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
《废话连篇——致新手》——chinapizza
2022/04/05 无线电
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL