2011-09-07 48 views
1
<?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 
} 
+1

沒有辦法做你想在這裏。但**爲什麼?**必須有更好的方式來做你想做的事。就我個人而言,*從未在實際代碼中看到過'register_tick_function'。 – Jon

+0

值班時,我必須使用一些CMS,直到找到確切形成HTML代碼的地方几個小時,尤其是在調用類和函數時。因此有必要編寫腳本引擎。我想看看究竟是一個文件,字符串,變量構思了一段HTML代碼 – Pestriny

+0

這聽起來像是你在尋找XDebug。 – Gordon

回答

0

我不是100%肯定你正在嘗試做的,但

例如,在的Joomla改變頁面的頁面底部的標籤規定的底部這1)你必須下載託管轉儲腳本2)找到旁邊的一段html腳本代碼3)調查功能的行爲4)找到一個地方html代碼教育這需要幾個小時我只是找到了幫助$ globals和register_tick_function

聽起來像

如果您需要調試您的應用程序和/或需要了解哪些函數和方法得到了叫什麼順序以怎樣的參數,然後用適當的調試器:

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

大謝謝,但在Xdebug的殘疾人hostmonster.com

你做要調試生產現場。如果您需要添加更多功能或應用更改,請先在開發服務器上執行此操作。確保它能正常工作,然後將更改部署到生產站點。所以要麼將XDebug放在你的本地機器上,要麼放在虛擬機中或類似的東西上。或者爲您的開發環境獲得新的託管商。無論如何,把它放在開發和調試不會中斷生產的地方。

+0

謝謝。我這樣做 – Pestriny

相關問題