2011-07-16 48 views
1

我正在寫一個Wordpress插件,需要定製其部分輸出以兼容頁面緩存插件(W3 Total Cache)。緩存插件用於緩存大部分頁面並僅執行片段的技術就是這樣的代碼片段。如何在PHP的eval()的多個調用之間傳遞數據?

但是,由於我的插件可能會在Wordpress模板中的幾個地方被調用,所以我需要保持這些不同的代碼實例之間的狀態爲eval() -executed。基本上我需要第一塊代碼來保存其他代碼片段將使用的數據。

本質上我需要eval()中的代碼來訪問eval()之外的數據。

有沒有這樣做的方法?

編輯:我也許應該補充一點的eval()每次執行還包裹在一個被稱爲從preg_replace_callback()一個回調函數,所以在eval()設置任何變量都需要通過也

回答

1

eval()不堅持不能創建一個新的變量範圍:

<?php 

$foo = 'Hello, World!'; 
eval('var_dump($foo); $bar = 33;'); 
var_dump($bar); 

...打印此:

string(13) "Hello, World!" 
int(33) 

我想說你所有的問題都能夠從一個函數內部創建全局變量。您可以使用常用方法:global關鍵字或$GLOBALS數組。

+0

$ GLOBALS數組工作正常。謝謝! –

相關問題