【问题标题】:How to access a variable inside a function without the construction of a global?如何在不构造全局变量的情况下访问函数内部的变量?
【发布时间】:2011-09-07 07:24:46
【问题描述】:
<?php
declare(ticks=1);
function tick_handler()
{
print($GLOBALS['a']);
}
register_tick_function('tick_handler');


function test()
{
$a = 1;//This not print
$a = 2;//This not print
$a = 3;//This not print
$a = 4;//This not print
}
test();
$a = 1;//This print
$a = 2;//This print
$a = 3;//This print
$a = 4;//This print
?>

如何打印 //这不是打印,而是没有全局$a?

没有

function test()
{
$GLOBALS['a'] = 1;//This not print
$GLOBALS['a'] = 2;//This not print
$GLOBALS['a'] = 3;//This not print
$GLOBALS['a'] = 4;//This not print
}

【问题讨论】:

  • 这里没有办法做你想做的事。但是为什么?必须有更好的方法来做你想做的事。就我个人而言,我从未在实际代码中见过register_tick_function
  • 值班时,我必须使用一些 CMS,直到您找到形成 HTML 代码的确切位置需要几个小时,尤其是在调用类和函数时。因此,有必要编写代码以使用脚本引擎。我想看看一个文件、字符串、变量究竟是什么构成了一段 HTML 代码
  • 这听起来像是在寻找 XDebug。
  • 例如,在Joomla中将页面底部的标签更改为页面底部为这个 1)您必须下载托管转储脚本 2)找到一段html脚本代码,旁边是3)调查函数的行为 4) 找到一个地方 html 代码教育 我只是在 $globals 和 register_tick_function 的帮助下找到了几个小时
  • 是的,使用 XDebug:xdebug.org

标签: php declare


【解决方案1】:

我不是 100% 确定您要做什么,但是

例如,在Joomla中将页面底部的标签更改为页面底部 1)您必须下载托管转储脚本 2)找到一段html脚本代码,旁边是 3)调查的行为函数 4) 找到一个地方 html 代码教育 我只是在 $globals 和 register_tick_function 的帮助下找到了几个小时

听起来像

如果您需要调试应用程序和/或需要查看以什么顺序调用哪些函数和方法以及使用哪些参数,请使用适当的调试器:

https://stackoverflow.com/questions/1494288/good-free-php-debugger

非常感谢,但 hostmonster.com 中的 xdebug 已禁用

您确实想要调试您的生产站点。如果您需要添加更多功能或应用更改,请先在您的开发服务器上执行此操作。确保它有效,然后将更改部署到您的生产站点。因此,要么将 XDebug 放在本地机器上,要么放在 VM 或类似的东西上。或者为您的开发环境获取一个新的主机。无论如何,把它放在开发和调试不会中断生产的地方。

【讨论】:

    猜你喜欢
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    相关资源
    最近更新 更多