【问题标题】:VSCode not showing DOCUMENT_ROOT as per php.iniVSCode 没有按照 php.ini 显示 DOCUMENT_ROOT
【发布时间】:2021-05-30 10:16:00
【问题描述】:

我正在尝试调试 PHP 代码。我已经在 XAMPP 设置中安装了带有 PHP 的 VSCode。代码在 Firefox 浏览器中运行良好。

当我在 VS Code 的调试器中运行它时,它似乎没有读取 $_SERVER['DOCUMENT_ROOT'] 并将其显示为空。此外,$_SERVER['REMOTE_ADDR'] 显示为未定义的数组键。

VS 代码中的错误消息:

发生异常。
警告:未定义的数组键“REMOTE_ADDR”

PHP 代码:

<?php
session_start();
$a = "hello";
echo $_SERVER['REMOTE_ADDR'];
echo $_SERVER['DOCUMENT_ROOT'];
session_destroy();
?>

PHP.INI 中的 XDEBUG 设置

Enabled Features
(through 'xdebug.mode' setting)
Feature Enabled/Disabled    Docs
Development Aids    ✔ enabled   ????
Coverage    ✘ disabled  ????
GC Stats    ✘ disabled  ????
Profiler    ✘ disabled  ????
Step Debugger   ✔ enabled   ????
Tracing ✘ disabled

[xdebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable= 1
xdebug.remote_connect_back = 1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9003
xdebug.remote_handler=dbgp
;xdebug.idekey = "ls.xdebug"
xdebug.start_with_request=yes
xdebug.mode=debug,develop
xdebug.remote_mode = req
sdebug.mode=debug
;xdebug.profiler_enable=0

请说明为什么某些 php.ini 设置未在全局数组$_SERVER 中显示为可用。

【问题讨论】:

  • 您必须在 CLI 中调试脚本,而不是作为网页(通过浏览器)。仔细检查。

标签: php visual-studio-code xdebug


【解决方案1】:

我无法解释为什么这些会是空的 - 我不认为这是 Xdebug 问题。也许您正在使用 CLI 版本的 PHP 启动脚本。如果是这种情况,则没有 REMOTE_ADDR(或者我怀疑是 DOCUMENT_ROOT)。

我可以解释为什么它在 Firefox 中运行“正常”,而不是通过 VS Code 中的调试器。默认情况下,VS Code 插件会在“所有内容”上设置断点,如图左下角所示:

“一切”意味着 VS Code 在每个异常、警告和通知上都设置了一个断点,这就是 Xdebug 停在这里的原因。您可以取消勾选“Everything”,然后它应该不再在 VS Code 中显示警告。

【讨论】:

    猜你喜欢
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多