【问题标题】:array_shift(array_keys) - (array_pop) - old code issuearray_shift(array_keys) - (array_pop) - 旧代码问题
【发布时间】:2015-09-09 16:30:00
【问题描述】:

我的代码可以追溯到 2011 年,我收到很多关于我的代码布局方式的严格标准的错误。

        if (!isset($End)) {
                    $Info['Card'] = array_shift(array_keys($Info['Cards']));
                }

            if (!isset($Game['Pack']) || !in_array($Game['Pack'], $Packs)) {
                $Game['PackName'] = array_shift(array_values($Packs));
                $Game['Pack'] = $this->GetPackInfo($Game['PackName']);
            }

                $Params['Password'] = array_pop(explode("\t", $Attr));

这段代码的正确布局方式是什么?

【问题讨论】:

  • 你能告诉我们你在这段代码中遇到了什么错误吗?请具体说明您想要什么输出?
  • 相信我,2011 年不是“非常老”的代码! :-D 我必须定期使用可以追溯到 2007 年的代码库;是的,那现在肯定开始有资格成为“老”了。无论如何,一段代码的年龄并不是真正的相关因素。重要的是质量——在现实世界中有一些真的旧代码(在某些地方超过 30 年甚至更多),它们仍然很强大,因为它一开始就写得很好.
  • 重新定义您的“严格标准”错误;如果您能真正向我们展示错误和它们发生的上下文,那将会很有帮助——它们是运行时错误还是在构建过程中?您使用的是什么版本的 PHP?你最近升级了吗?您还在使用哪些其他工具?其中之一是否报告错误?请提供更多信息。

标签: php arrays


【解决方案1】:

您没有在问题中明确说明,但我将您的短语“关于我的代码布局方式的严格标准的错误”解释为您正在运行 PHP Code Sniffer或类似的工具,这是您从中获取这些错误的地方。

PHP Code Sniffer 是一款出色的工具,可用于分析您的代码是否符合特定准则。

为此有许多指导方针——人们已经争论了几十年,是否使用制表符或空格进行缩进,是否使用 CamelCase 或蛇形大小写作为变量名,以及许多其他问题。

PHP 代码嗅探器足够灵活,可以处理任何这些准则,并且可以配置为检查您的代码是否符合其中一种通用标准或您自己的自定义集。

近年来,PHP 世界已经确定了一套由PHP-FIG (Framework Interop Group) 定义的通用标准。这些标准称为 PSR1、PSR2 等。对于 PHP 代码嗅探器,您只需指定 --standard=psr2 即可让它检查您的代码是否符合 PSR 标准。

正如我所说,您可以使用其他标准,但现在大多数 PHP 代码都是按照 PSR 标准编写的,所以这是一个很好的起点。

与所有其他编码标准一样,PSR 标准纯粹是一种共识;不符合任何标准的代码不是“错误的”;只是更难阅读。

您引用的代码在几个方面不符合 PSR 标准,主要是您引用的位中变量名的缩进和大写。

如果您想修改代码以符合标准,应该相当容易。 PHP Code Sniffer 还附带一个名为 PHPCBF(PHP Code Beautifier and Fixer)的配套工具,它可以自动纠正 PHP Code Sniffer 检测到的至少一些错误。

另一种方法是保持原样;如果这是被合并到新项目中的大量旧代码,那么将其分开并简单地将旧代码从测试中排除可能是有意义的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2011-05-03
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多