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

说明

写了一段时间的java以后,特别不习惯PHP自己的弱类型方式,在写代码的时候总以为不怎么放心,特别自己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();

以上例子来看,通常来讲其实也是不存在什么问题的,可是在编写java

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的一个具体实例;this

在这个地方,PHPstorm会根据这个判断在作$item属性调用的时候会有自动提示,很是的方便。编码

思考

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

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

相关文章
相关标签/搜索