在我的PhpStorm项目中,我有以下3个文件:
sub.php:
<?php
function do_something() {
// do something
}
?>
sub_debug.php:
<?php
function do_something() {
// do something with debugging
}
?>
main.php:
<?php
include 'sub.php';
do_something();
?>
所以在我的main.php中,我通常包含sub.php
,如果我需要进行一些调试,只能切换到sub_debug.php
。所以在任何时候,我只包含这两个PHP文件中的一个,并且只有一个do_something()
函数在范围内。
然而,当我按住CTRL键点击PhpStorm中do_something()
的{{1}}电话时,它仍然告诉我有多个实现,并提示我选择一个。
是否可以将PhpStorm配置为仅链接到main.php
- d代码而不是项目中的所有PHP文件?
答案 0 :(得分:3)
PhpStorm在处理定义时不考虑include
/ require
语句 - 它假定(出于方便和性能原因)所有全局实体(如函数/类等)始终可访问(例如,类可以自动加载..或者在其他地方包含/需要具有功能的必要文件。)
考虑一下这种情况:在main.php
中,您添加了另一个文件(例如include 'another.php';
),并在another.php
个文件中调用do_something();
。
考虑到another.php
没有任何include / require语句 - IDE应该如何确定do_something();
要去哪里?
使用当前的方法,它在两种情况下都提供相同的用户体验。
无论如何:https://youtrack.jetbrains.com/issue/WI-4095似乎与您的请求有关。
考虑观看此门票和相关门票(str / vote / comment)以获得有关任何进展的通知。