1
我有一個私有函數,它有很多變量,比如說:$foo
,$bar
,$baz
。從其他函數訪問本地變量PHP
在函數內部,我叫parent::_setViewVars(array('foo','bar','baz'));
這_setViewVars
看起來如此:
protected function _setViewVars($a){
foreach($a as $v){
global $$v;
$this->set($v, $$v);
}
}
我只是想擺脫掉CakePHP的狗屎80行$this->set('selected_areas',$selected_areas);
,這就是這個函數是什麼。因爲它不是全局變量,因此無法訪問$$v
。鑑於這個函數是從具有這些變量的上下文中調用的,我能以某種方式達到它們嗎?
(由是否有名稱相同的批量設置視圖變量的CakePHP的方式的方式,告訴我如何 - 我還沒有找到一個)
PS:包裝的一切到一個數組是不是一個解決方案,我們在這裏討論數以千計的不必要的方括號。
看一看[compact](http://us1.php.net/manual/en/function.compact.php),它會創建arr對你的場景有用。 –
我試過了:'compact'也沒有達到這些變量。 –
你能重新定義'parent :: _ setViewVars'嗎?或者跳過完全調用它來支持你自己調用' - > set()'的循環,處理'compact'的輸出? –