kxc*_*kxc 11 php variables undefined require phpstorm
PHPStorm显示来自其他文件的所有变量(包括必需和包含的)都是未定义的.我在这里找到了这个解决方案,但在禁用该选项后Ignore 'include' and 'require' statements
,IDE忽略了所有未定义的变量.
例如,我有一个a.php
包含内容$name = 'Bob'
和文件的文件b.php
,它需要该文件a.php
.当我输入echo $name
文件时,b.php
它按预期工作并显示'Bob'
.但是,IDE强调变量$name
声称它未定义.如果禁用该选项'Undefined variable' - Ignore 'include' and 'require' statements
,IDE将停止突出显示该选项.
使用该选项,我现在可以编写任何变量,例如$sdadasdasdas
在文件中b.php
,IDE不会突出显示它.
PHPStorm可以理解在包含/需要的文件中设置哪些变量,哪些不是?
And*_*wis 18
正如hakre指出的那样,这个警告可能是代码味道不好的迹象.但是,如果存在先前或调用,您可以禁用PHPStorm对未定义变量的检查.include
require
取消选中Settings/Editor/Inspections/PHP/Undefined变量中的单选按钮,名为"忽略'包含'和'require'语句".
如果您不想禁用此检查,可以使用PHPStorm的@noinspection批注为单个语句禁用它.示例代码:
require $path; // $some_variable is defined in that file
/** @noinspection PhpUndefinedVariableInspection */
$config["DBSettings"] = [
"server" => $some_variable
];
Run Code Online (Sandbox Code Playgroud)
小智 11
启用“在当前文件之外搜索变量的定义”
小智 5
以上所有答案都消除或抑制了恕我直言不是好的解决方案的警告。
最佳解决方案是使用带有已使用变量的doc块添加标头。
例:
<?php
/**
* @var string $name
* @var FormData $form
*/
?>
Run Code Online (Sandbox Code Playgroud)
这不仅会阻止显示“未定义的变量”警告,而且还会记录您的代码并使自动完成工作按预期进行。
归档时间: |
|
查看次数: |
12586 次 |
最近记录: |