我怎样才能让 PHP 魔法常量 __FILE__ 与 Eclipse 和 PDT 一起工作

2023-11-24

最近,当我使用 XDebug(在 Ubuntu 上的 Eclipse 下)调试一些 PHP 文件时,我遇到了一个奇怪的行为:

print(__FILE__);

导致

"xdebug eval"

GEE!

所以这个神奇常数看起来not来处理这个。

有人知道修复或可行的解决方法吗?如何调试调试器? (对路径进行硬编码是 PITA!)


您得到的输出并不正确。__FILE__是一个在解析器时评估的特殊常量。当 PHP 脚本被编译时,它实际上会读到这样的内容:

// test.php
<?php
    "test.php";
?>

即使脚本来源是:

// test.php
<?php
    __FILE__;
?>

这意味着解析之后,不存在这样的“常量”__FILE__根本没有,因为它已经被替换了。

这意味着如果您在 IDE 中通过 DBGp 进行操作eval命令eval -- __FILE__ it can not给你__FILE__与任何文件名。相反,它使用当前上下文的文件名,即xdebug eval或者在以后的版本中,xdebug://debug-eval.

本质上,这与执行以下操作相同:

php -r 'eval("__FILE__;");'

它还输出:

Command line code(1) : eval()'d code

Xdebug 查找这种格式,并将其更改为xdebug://debug-eval这样它就可以实际调试到已评估的代码中。

__FILE__在 PHP 源代码中按预期工作,可以通过以下代码片段证明:

<?php $far = __FILE__; // now evaluate $far in your IDE ?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我怎样才能让 PHP 魔法常量 __FILE__ 与 Eclipse 和 PDT 一起工作 的相关文章

  • 如何将 javascript 倒计时器与服务器同步

    我有一个拍卖网站 有一个 JavaScript 计时器倒计时 由于某种原因 15 20 分钟后 该计时器比实际时间滞后 20 30 秒 在 1 小时的过程中 JavaScript 倒计时器可能会关闭至少 2 3 分钟 这让用户感到困惑 因为
  • PHP 查找最接近时间线期间的日期

    所以 呃 好吧 这可能会涉及到数学问题 所以希望你带上科学计算器 这是我的问题 给定初始日期 时间戳 时间段 秒 和今天的日期 时间戳 我需要找到与 period n 加上原始 初始日期一致的最近日期 到目前为止 我得到了一些运行良好的东西
  • 如何检查 id 是否已存在 - codeigniter

    我正在尝试检查数据库中的 id 是否已存在 如果不存在则仅插入该 id 而不是其他存在的 id 我尝试执行一个 where 语句来检查数据库中是否存在它们的 id 但即使它们是新信息 它也不会将其插入数据库中 我在这里很迷路 任何指导将不胜
  • PHP 类中的命名空间和全局变量问题

    我陷入了这种困惑 我不明白为什么我的 HelperClass 下的全局 error 返回空 我可以验证 class gt error 确实之前已填充了数据 在这种情况下 命名空间是否存在某种我不知道的问题 请给我一些指点 以下是一些相关的代
  • CodeIgniter 中的 base_url() 和 403 错误

    在 HTML 视图中 css 链接代码如下所示 但我的浏览器显示的地址具有双域地址 www jedendzien pl www jedendzien pl assets css style css 所以我收到 403 错误 我通过以下方式创
  • 按带宽限制成员资格

    我刚刚将 Codeigniter 应用程序部署到 Amazon EC2 使用 S3 作为媒体 使用 RDS 作为 MySQL 我需要根据使用的带宽量限制用户帐户访问 帐户将基于带宽 例如基本帐户 x 每月最多 20GB 等 但是我不知道最好
  • 如何完全刷新 CodeIgniter 中的页面?

    我正在叠加层中加载表单 覆盖层对于调用覆盖层的页面有一个单独的控制器和操作 在表单提交时 如果成功 我只想重新加载加载叠加层的引用页面 我可以加载引用页面 但它将内容放置在覆盖层内 header Location www example c
  • php 测试字符串是否包含三个字符串之一?

    实现以下目标的最佳方法是什么 我有一个 img变量包含例如myimage left jgp someimage center jpg or img right jpg 最好的测试方法是什么 left right or center文件名并提
  • maven + eclipse + tomcat:类未找到异常

    我有一个使用 servlet 的简单 Web 应用程序 我将其创建为 Maven 项目 然后将其导入到 Eclipse 中 文件 gt 导入 gt 现有的 Maven 项目 战争已正确部署到 tomcat 7 但是 当我在 Eclipse
  • 如何在 eclipse 中将 ReactJs 与 Spring MVC 集成

    我是新来的ReactJS 在我使用之前angularJS对于我的客户端 但现在我想将它与当前的应用程序集成SpringMVC 现在我想整合ReactJS作为客户端而不是angularJS 请帮我 如果有任何例子请帮忙 我在用eclipse
  • 使用类型映射选项的 PHP SoapClient 示例

    我在 PHP 的 SoapClient 中的命名空间使用方面遇到了一个小问题 从文档中我相信构造函数的类型映射选项将解决我的问题 http php net manual en soapclient soapclient php http p
  • Drupal:*.api.php 中的 hook_ 函数是否被调用过?

    在 Drupal 7 中 每个核心模块都有一个 api php文件 其中 是模块的名称 例如 modules node node api php modules path path api php 这些文件有什么用 它们包含以以下开头的函数
  • PHP 字符串转日期时间(AM/PM)

    可以将格式为 A H i m d y 的字符串转换为 php 中的日期时间吗 示例字符串 AM 05 28 07 08 13 这不起作用 date DateTime createFromFormat A H i m d y AM 05 28
  • 如何在服务器(无 GUI)上呈现网页以进行打印?

    我正在尝试使用 PHP 脚本将页面实用地打印到办公室打印机 这是我到目前为止所得到的 我在服务器上安装了一台打印机 我可以通过命令行的打印命令使用 PHP 向其发送作业 我还可以使用 PHP 脚本编写纯文本文件 然后将它们添加到打印提示中
  • WooCommerce 添加到购物车后停止重定向

    我希望在用户单击 添加到购物车 按钮后完全删除任何重定向 实际上我没有使用产品页面 我使用一个带有产品链接的简单按钮 如下所示 add to cart 492 我的用户将单击我页面上的多个 添加到购物车 按钮 因此在单击第一个按钮后他无法重
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • PHP cURL 代理带标头?

    我正在制作一个 PHP 图像代理脚本 我需要它不仅能够回显其请求的图像的内容 而且还能够以相同的方式重现图像请求的标头 我见过一个 另一个 但没有同时看到过 这些 cURL 选项让我感到困惑 我该怎么做 抱歉 我不确定你想要什么 这是从图像
  • 在调试模式下,哪些代码更改会自动反映在 Eclipse 中?

    我使用 eclipse 用于编写 调试 作为 IDE 在调试模式下 当我进行一些更改 例如初始化局部变量 时 它们会自动反映 但其他更改例如更改静态变量的值 有时我会收到一条消息 说我需要重新启动虚拟机 有时则不需要 现在的问题是哪些类型的
  • java.lang.NoClassDefFoundError:com.google.ads.AdView

    我正在尝试将 admob 广告合并到我的应用程序中 到目前为止我已经添加了以下代码 在我的应用程序主要活动的 onCreate 方法中 adView new AdView this AdSize BANNER my code number
  • 散列 hash_hmac 时,Convert.ToChar(0) 散列结果与 PHP 中的 chr(0) 不同的字符串

    我在 PHP 中有一个字符串 它被转换为字节数组并进行哈希处理 转换为字节数组的字符串如下所示 G 字符 0 便便 我需要 C 中的等效字节数组 这样我才能得到相同的哈希值 编辑 这是完整的问题 生成的哈希值不同 PHP api secre

随机推荐