如何设置 PHPStorm 检查 required/included 文件中的变量使用情况?如何检查 required/included 文件中的变量定义?

How to set PHPStorm to check for variable usage in required/included files? How to check variable definition in required/included files?

当我在 PHPStorm 中 requireinclude 一个文件时,它无法检测到主文件中定义的变量正在被 required/included.与 included/required 文件中的变量相同,它显示为未定义。

为了清楚起见,这里有一个示例:

主文件(假设 main.php):

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

这里是 "required" next.php 文件:

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

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

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

这可能吗?还是我问错了问题?

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

为什么PhpStorm默认没有实现这个有很多问题。 我只能建议您为您的项目创建自定义插件,我可以帮助您实现它。

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

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

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

我经常使用 init.php 脚本,例如建立数据库连接 ($db)。 如果连接发生变化,只需编辑一个地方。 在我正在做的工作的脚本中,我现在总是从

开始