首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP CodeSniffer错误多次

PHP CodeSniffer错误多次
EN

Stack Overflow用户
提问于 2015-07-09 14:50:51
回答 2查看 174关注 0票数 0

我对出了什么问题完全感到困惑。我有一个正在成功运行的代码版本,在进行了添加;s到endforeach和endif语句的结尾(使其与php 5.2兼容)之后,我得到了大量错误。不过,它们都是相同的错误:

代码语言:javascript
运行
复制
09-Jul-2015 07:47:26 US/Pacific] PHP Notice:  Undefined index:  in /Applications/MAMP/bin/php/php5.6.2/lib/php/PHP/CodeSniffer/File.php on line 3476
[09-Jul-2015 07:47:26 US/Pacific] PHP Stack trace:
[09-Jul-2015 07:47:26 US/Pacific] PHP   1. {main}() /Applications/MAMP/bin/php/php5.6.2/bin/phpcs:0
[09-Jul-2015 07:47:26 US/Pacific] PHP   2. PHP_CodeSniffer_CLI->runphpcs() /Applications/MAMP/bin/php/php5.6.2/bin/phpcs:25
[09-Jul-2015 07:47:26 US/Pacific] PHP   3. PHP_CodeSniffer_CLI->process() /Applications/MAMP/bin/php/php5.6.2/lib/php/PHP/CodeSniffer/CLI.php:95
[09-Jul-2015 07:47:26 US/Pacific] PHP   4. PHP_CodeSniffer->processFiles() /Applications/MAMP/bin/php/php5.6.2/lib/php/PHP/CodeSniffer/CLI.php:867
[09-Jul-2015 07:47:26 US/Pacific] PHP   5. PHP_CodeSniffer->processFile() /Applications/MAMP/bin/php/php5.6.2/lib/php/PHP/CodeSniffer.php:619
[09-Jul-2015 07:47:26 US/Pacific] PHP   6. PHP_CodeSniffer->_processFile() /Applications/MAMP/bin/php/php5.6.2/lib/php/PHP/CodeSniffer.php:1679
[09-Jul-2015 07:47:26 US/Pacific] PHP   7. PHP_CodeSniffer_File->start() /Applications/MAMP/bin/php/php5.6.2/lib/php/PHP/CodeSniffer.php:1801
[09-Jul-2015 07:47:26 US/Pacific] PHP   8. Generic_Sniffs_WhiteSpace_ScopeIndentSniff->process() /Applications/MAMP/bin/php/php5.6.2/lib/php/PHP/CodeSniffer/File.php:567

每次运行代码时,它都会给我带来大约200次错误。我使用的是安装了phpcs的崇高文本3。我尝试过将phpcs从我的php文件夹中删除,但是它似乎丝毫没有影响它。

有人有这方面的经验吗?知道是什么引起的吗?

编辑的

此后,我从崇高文本3中删除了代码嗅探器包,并删除了错误消息中提到的CodeSniffer文件夹,并且仍然得到了完全相同的错误消息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-09 15:22:13

很明显,您在phpCS中碰到了一个bug,因此很可能应该在github问题页面上报告它。见CodeSniffer/issues。您将需要提供尽可能小的代码示例,以便可靠地再现问题。

当然,这个错误只是一个“注意事项”,所以PHP很高兴地在phpCS程序发生后继续运行。这可能是好事,也可能不是好事。在某些情况下,这类问题的发生可能会在程序中引起严重的问题,而在其他情况下,则完全没有区别。如果不对phpCS代码库做一些深入分析(不幸的是,我没有时间),就很难确定这一特殊情况的哪一边会掉下来。

不管简单地看一下File.php的代码,似乎错误都发生在findFirstOnLine()函数中,并且可能是由于它的参数之一($start)被空白传递而导致的,在这里,它期望接收一个整数。

如果没有看到问题发生在我自己身上,就很难确定这一点,但是如果这就是问题所在,那么快速的解决办法就是在函数的开头添加一行代码,这样的话

代码语言:javascript
运行
复制
$start = (int)$start;

如果我的粗略分析是正确的,那就应该阻止通知的发生。

然而,这个参数是以一个意想不到的值传入的,这可能会指向phpCS中其他地方的一个更深层次的错误,因此我建议,在进行上述工作之前,需要进行更多的分析。

但在这一切结束时,我会重复我早些时候所做的评论。之所以会发生这种情况,是因为您已经使代码PHP5.2兼容。我强烈建议你重新考虑你是否真的需要这样做。今天,没有人应该使用PHP5.2的原因是没有的:它已经失去了支持,已经有近五年没有安全补丁了。如果您正在运行它,那么它可能也意味着您也在运行一个不受支持的OS版本,因为它对于任何最新的OS版本都是不可用的,所以这意味着您还有很多安全问题。请不要使用它,也不要鼓励别人使用它。

票数 2
EN

Stack Overflow用户

发布于 2015-07-09 15:00:36

Undefined index:通常意味着您试图通过数组元素的键(其“索引”)访问数组元素,而数组中的键不存在。

代码语言:javascript
运行
复制
$array = array(
  'a' => 'apple',
  'c' => 'cat',
);
var_dump($array['c']); //cat
var_dump($array['b']); //null
// and notice: Undefined index: b in ...

代码的有趣之处在于它没有告诉您索引是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31321018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档