VS Code中Intelephense无法识别引入文件中的PHP变量
解决PHP Intelephense提示“Undefined variable '$con'”的问题
你的代码场景:
$root = $_SERVER['DOCUMENT_ROOT']; include($root . '/sqlcon.php'); $gettextquery = mysqli_query($con, "SELECT * FROM `pics` WHERE ai_cats = ''");
收到提示:
Undefined variable '$con'
尽管$con在sqlcon.php中定义,且已尝试清除缓存、重启VS Code,可按以下方案解决:
- 显式声明全局变量
在include语句后添加global $con;,明确告知Intelephense该变量来自全局作用域:
$root = $_SERVER['DOCUMENT_ROOT']; include($root . '/sqlcon.php'); global $con; $gettextquery = mysqli_query($con, "SELECT * FROM `pics` WHERE ai_cats = ''");
- 给
$con添加类型注释
在sqlcon.php中$con的定义上方添加文档注释,指定变量类型:
/** @var mysqli $con */ $con = mysqli_connect('localhost', 'username', 'password', 'database');
- 检查Intelephense的文件包含范围
打开VS Code设置(快捷键Ctrl+,),搜索intelephense.files.include,确保sqlcon.php所在目录被纳入扫描范围。若使用动态路径导致扩展无法识别,可手动添加目录:
"intelephense.files.include": [ "**/*.php", "/your/project/path/**/*.php" ]
- 触发项目重新索引
按下Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入PHP Intelephense: Rebuild,让扩展重新扫描所有文件,识别变量定义。
内容的提问来源于stack exchange,提问作者TheGreatCornholio
相关产品推荐
相关产品推荐

