gpt4 book ai didi

PHP 等同于 Perl 的 'use strict'(要求变量在使用前进行初始化)

转载 作者:可可西里 更新时间:2023-10-31 23:08:33 26 4
gpt4 key购买 nike

Python 的约定是变量是通过第一次赋值创建的,在赋值之前尝试读取它们的值会引发异常。相比之下,PHP 在读取变量时会隐式创建一个空值变量。这意味着在 PHP 中很容易做到这一点:

function mymodule_important_calculation() {
$result = /* ... long and complex calculation ... */;
return $resukt;
}

此函数始终返回 null,如果 null 是该函数的有效值,则该错误可能会在一段时间内未被发现。 Python 等价物会提示变量 resukt 在赋值之前被使用。

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

最佳答案

PHP 在解析时不会做太多的前向检查。

您能做的最好的事情就是提高警告级别以报告您的错误,但是当您收到 E_NOTICE 时,为时已晚,而且还不可能强制 E_NOTICES 提前发生。

很多人都拿着“error_reporting E_STRICT”标志,但它仍然是追溯警告,并且不会保护您免受像您发布的错误代码错误的影响。

这个 gem 出现在本周的 php-dev 邮件列表中,我认为它正是您想要的工具。它更像是一个 lint 检查器,但它为当前的 lint 检查 PHP 增加了范围。

PHP-Initialized Google Project

希望通过稍微注意一下,我们可以在 PHP 本身中实现此行为。所以把你的 2 美分放在 PHP 邮件列表/错误系统/功能请求上,看看我们是否可以鼓励它的集成。

关于PHP 等同于 Perl 的 'use strict'(要求变量在使用前进行初始化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/91699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com