PHP相当于Perl的’use strict'(要求变量在使用前初始化)

前端之家收集整理的这篇文章主要介绍了PHP相当于Perl的’use strict'(要求变量在使用前初始化)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Python的约定是变量是通过第一次赋值创建的,并且在分配一个变量之前尝试读取它们的值会引发异常.相反,PHP在读取时会隐式创建一个变量,并带有空值.这意味着在PHP中很容易做到这一点:
function mymodule_important_calculation() {
    $result = /* ... long and complex calculation ... */;
    return $resukt;
}

函数始终返回null,如果null是functuion的有效值,则该bug可能会在一段时间内未被检测到. Python等价物会抱怨变量resukt在分配之前被使用.

那么……有没有办法将PHP配置为更严格的变量赋值?

PHP在解析时没有做太多的事情检查.

你能做的最好的事情是提高警告级别以报告你的错误,但是当你得到E_NOTICE时,它太晚了,并且不可能提前强制E_NOTICES发生.

很多人都在使用“error_reporting E_STRICT”标志,但它仍然是追溯性警告,并且不会保护您免受您发布的错误代码错误.

这个宝石出现在本周的PHP-dev邮件列表中,我认为它只是你想要的工具.它更像是一个lint-checker,但它增加了当前lint检查PHP的范围.

PHP-Initialized Google Project

我们希望通过一些关注,我们可以在PHP本身中实现这种行为.所以把你的2美分放在PHP邮件列表/ bug系统/功能请求上,看看我们是否可以鼓励它的集成.

猜你在找的PHP相关文章