加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:37:29 所属栏目:PHP教程 来源:网络整理
导读:Python的约定是变量是通过第一次赋值创建的,并且在分配一个变量之前尝试读取它们的值会引发异常.相反,PHP在读取时会隐式创建一个变量,并带有空值.这意味着在PHP中很容易做到这一点: function mymodule_important_calculation() { $result = /* ... long and
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系统/功能请求上,看看我们是否可以鼓励它的集成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读