如何设置PHPStorm以检查所需/包含文件中的变量用法?如何检查必需/包含文件中的变量定义?

时间:2015-03-19 05:36:25

标签: php phpstorm

requireinclude PHPStorm中的文件时,它无法检测到主文件中定义的变量正在该文件中被使用/包括在内。与包含/必需文件中的变量相同,它显示为未定义。

以下是一个清晰的例子:

主文件(让我们说main.php):

<?php
$var1 = "hi";
require "next.php";

虽然这是&#34;必需&#34; next.php档案:

<?php
echo "<p>".$var1."</p>";

代码工作正常,但在PHPStorm上,$var1main.php文件中显示为未使用,而在next.php文件中显示为未定义。

我已经在SO上看到了关于如何禁用警告的几个答案,但这不是我想要的。我希望PHPStorm能够分别识别在调用和调用模块中使用和定义的变量。

这可能吗?或者我问错了问题?

如果有人想知道我为什么这样做,我试图将逻辑与结构ala-MVC分开。

3 个答案:

答案 0 :(得分:4)

问题是只看next.php 本身,变量明确地未定义。无法保证next.php将如何执行。您不能将文件限制为仅在从其他文件包含时执行。您可以自己执行此文件,在这种情况下它将失败。或者你可以从无限多个其他没有设置此变量的文件中include它,在这种情况下它会失败。

这就是PhpStorm唠叨这个未定义变量的原因。它错误的编码风格,因为它可能在任何情况下都会失败。

答案 1 :(得分:0)

有很多问题,为什么默认情况下不会在PhpStorm中实现。 我只能建议你为你的项目创建自定义插件,我可以帮助你做到这一点。

您可以使用自定义goto插件查看视频。这与您的问题有关。在视图文件中导航到控制器文件中定义的变量。 https://www.youtube.com/watch?v=bVy2MJGJ6LM

答案 2 :(得分:0)

我经常使用init.php脚本,例如建立数据库连接($ db)。 如果连接更改,则仅需编辑一个位置。 现在,在执行工作的脚本中,我总是以