我正在使用Eclipe PDT在PHP中开发一个相当小的项目。
我发现自己浪费了很多时间,因为在编辑过程中键入错误不会导致错误或警告。这意味着我会遇到运行时错误(容易)或不容易(难以调试)。
我想举一些例子:
函数调用错误
$ret = $this->getListOfUniqueNames();
像这样键入呼叫几乎不会导致任何错误,因为在这里内容帮助会有所帮助。
如果您将类与接口一起使用,则故事会发生变化,其中内容支持并不总是可用的。
示例1:()丢失
$s = $this->mDataClass->getSchedule;
在这次通话中,我忘记了()。 PHP不会引发编辑错误或未定义的常量,因此在运行时会出现此错误。
示例2:未定义的函数
$s = $this->mDataClass->getSchedule();
这是对未定义函数的调用。应该是getScheduleList()。
示例3:未定义的变量
$this-mVarTypingError = "abc";
这实际上在扩展子类中创建了一个新变量。可以使用顶级类中的__set来防止,但是我认为生成代码以防止键入错误的好习惯不是很好的做法。
我不知道是否
declare(strict_types = 1);
将是有益的。
所以我的问题是:如何防止在编译期间在Java中捕获的这类类型的输入错误?我宁可定义所有变量,然后搜索错误,因为我没有。
答案 0 :(得分:0)
使用IDE。我个人是PHPStorm的粉丝(尽管我与创建它的公司没有任何隶属关系)。它会即时捕获所有这些问题的100%,甚至更多。