详解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 相关文章推荐
延长phpmyadmin登录时间的方法
Feb 06 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
PHP数组和explode函数示例总结
May 08 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
基于PHP制作验证码
Oct 12 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
php+laravel依赖注入知识点总结
Nov 04 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中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
使用PHP开发留言板功能
2019/11/19 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
JavaScript动态绑定详解
2017/09/14 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
python使用arp欺骗伪造网关的方法
2015/04/24 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
python查看模块安装位置的方法
2018/10/16 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
CSS3 简写animation
2012/05/10 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
师德师风个人整改措施
2014/10/27 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS