array_shift(array_keys) - (array_pop) - 旧代码问题

时间:2015-09-09 04:48:12

标签: php arrays

我的代码很久以前可以追溯到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));

将此代码放置的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您尚未在问题中明确指出,但我会解释您关于我的代码布局方式的严格标准的短语" 错误"这意味着您正在运行PHP Code Sniffer或类似工具,而这正是您从中获取这些错误的地方。

PHP Code Sniffer是分析代码是否符合某些准则的绝佳工具。

这方面有许多指导方针 - 几十年来人们一直在争论是否使用制表符或空格进行缩进,是否使用CamelCase或snake_case作为变量名称以及其他许多要点。

PHP Code Sniffer足够灵活,能够处理这些指南中的任何一个,并且可以配置为检查代码中的一个通用标准或您自己的自定义集。

近年来,PHP世界已经确定了由PHP-FIG (Framework Interop Group)定义的一套通用标准。这些标准称为PSR1,PSR2等。对于PHP Code Sniffer,您只需指定--standard=psr2即可根据PSR标准检查代码。

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

与所有其他编码标准一样,PSR标准纯粹是意见的共识;不符合任何标准的代码不是"错误&#34 ;;它更难阅读。

您引用的代码无法通过多种方式符合PSR标准,主要是在您引用的位中对变量名称进行缩进和大写。

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

另一种选择就是保持原样;如果这是一大堆旧代码被合并到一个较新的项目中,那么将它保持分离并简单地从测试中排除旧代码可能是有意义的。