PHPStorm显示,来自其他文件的所有变量,无论是必需的还是包含的,都是未定义的。我找到了这个解决方案here,但在我禁用该选项Ignore 'include' and 'require' statements之后,集成开发环境忽略了所有未定义的变量。
例如,我有一个包含content $name = 'Bob'的文件a.php和一个需要文件a.php的文件b.php。当我在文件b.php中输入echo $name时,它按预期工作并显示'Bob'。然而,集成开发环境突出显示了变量$name,声明它是未定义的。如果禁用选项'Undefined variable' - Ignore 'include' and 'require' statements,集成开发环境将停止突出显示它。
有了这个选项,我现在可以编写任何变量,例如b.php文件中的$sdadasdasdas,而集成开发环境不会突出显示它。
PHPStorm能理解哪些变量设置在包含/必需的文件中,哪些没有设置吗?
发布于 2019-06-22 18:28:55
以上所有答案都删除或抑制了imho不是很好的解决方案的警告。
最好的解决方案是使用变量添加带有doc块的header。
示例:
<?php
/**
* @var string $name
* @var FormData $form
*/
?>这不仅可以防止显示“未定义的变量”警告,还可以记录您的代码并使自动完成功能按预期工作。
发布于 2016-02-02 15:53:22
正如hakre所指出的,这个警告可能是一个坏的代码气味的信号。但是,如果之前存在include require 或调用,则可以禁用PHPStorm对未定义变量的检查。
取消选中Settings/Editor/Inspections/PHP/Undefined variable中名为"Ignore 'include‘and 'require’statements“的单选按钮。

如果您不想禁用此检查,可以使用PHPStorm的@noinspection annotation为单语句禁用它。示例代码:
require $path; // $some_variable is defined in that file
/** @noinspection PhpUndefinedVariableInspection */
$config["DBSettings"] = [
"server" => $some_variable
];发布于 2020-11-28 07:54:05
启用“在当前文件之外搜索变量的定义”

https://stackoverflow.com/questions/22476778
复制相似问题