【问题标题】:phpstorm accept undefined variablesphpstorm 接受未定义的变量
【发布时间】:2014-12-27 12:25:06
【问题描述】:

我试图了解 PHPstorm 的意外行为。我有两个文件没有任何包含或必需的定义。

// file1.php <?php $var = new class1();

// file2.php <?php class class1 { }

我希望 class1 在 file1 中未定义,因为 file2 不包括在内。但是 phpstorm 没有显示警告。 CTRL-B 跳转到 file2 中的声明。未选中“忽略包含和要求语句”选项。有人可以向我解释一下吗?

【问题讨论】:

  • PhpStorm 并不真正关心 include/require 语句,尤其是对于类/接口/特征。类自动加载是当今的常规做法:您可能在整个项目中(在入口/引导文件中)只有一个要求,并且所有类都将自动加载(例如,由 Composer 生成的自动加载器)。因此:这根本不是错误。

标签: php phpstorm


【解决方案1】:

phpstorm 并不知道你的上下文的一切。这些文件可能一个接一个地被其他文件需要,所以一切都会正常工作。还有一个很好的机会,您正在使用自动加载器/作曲家(谁没有?)这将解决这个问题。

所以,我认为他们不会认为这是一个错误,因为如果他们启用此类警告,他们将无法正确过滤误报

【讨论】:

    【解决方案2】:

    这很可能是 PHPStorm 本身的错误,因为 PHP 会抛出异常。

    Fatal error: Class 'class1' not found in /srv/www/htdocs/swaggityswoogityswoo/f1.php on line 5 Call Stack: 0.0003 629360 1. {main}() /srv/www/htdocs/swaggityswoogityswoo/f1.php:0 
    

    自从我升级到最新版本后,它的行为似乎很奇怪。例如,当我尝试合并已部署和本地文件都包含“text-align:left”的文件时,他想将其合并到“text-align:center”中。

    等他们发布另一个版本,也许他们就能修复这个错误。

    【讨论】:

    • 1) 这不是错误,而是 IDE 如何与类一起工作的方式 2) 您提到的其他问题与实际问题无关。如果您发现问题 - 请通过youtrack.jetbrains.com/issues/WI 向他们的问题跟踪器报告
    猜你喜欢
    • 2014-04-23
    • 2012-07-29
    • 2013-06-06
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多