使用聲明變量作爲下面顯示的數組索引時,我無法獲取數組內容。使用變量的PHP數組索引
$indexes = "[0][1][0][1]";
$code = $params["smv_code"].$indexes;
此返回一個 「陣列到字符串轉換錯誤」;
請注意,$索引是動態的,取決於數組索引的「parent_0_1_0_1」params內容。
使用聲明變量作爲下面顯示的數組索引時,我無法獲取數組內容。使用變量的PHP數組索引
$indexes = "[0][1][0][1]";
$code = $params["smv_code"].$indexes;
此返回一個 「陣列到字符串轉換錯誤」;
請注意,$索引是動態的,取決於數組索引的「parent_0_1_0_1」params內容。
.
運營商只是做一個string concatenation - 它不會爲這樣的代碼工作。我不認爲PHP有能力解釋這樣的原始代碼 - 至少不安全。 (你總是可以使用eval
,但是使用類似的東西存在嚴重的安全問題 - 注入等)。
我會建議只通過解釋索引自己遍歷數組「手動」。更改$indexes
到"0,1,0,1"
並執行以下操作:
$index_array = explode(',',$indexes)
$code = $params["smv_code"];
foreach($index_array as $i) {
$code=$code[$i];
}
$code
末應該是你正在尋找的價值。
這解決了我的問題,只是想問問它是否嘗試將參數轉換爲(object)並使$索引「 - > 0-> 1-> 0-> 1」,並嘗試這一個$ params-> smv_code {$ indexes}將這可能嗎? –
不,PHP不是那樣的動態。抱歉。如前所述,唯一的方法(就我所知)是使用'eval()'函數,比如發佈在註釋中的嚮導......但是如果你能夠正確地製作參數來開啓自己的攻擊其他代碼。 – PressingOnAlways
這是非常不清楚的,你究竟想要做什麼,以及你的代碼應該做什麼? – ElefantPhace
他非常清楚他想要做什麼 - 他正在嘗試使用代碼表示法瀏覽多維數組。 – PressingOnAlways
除了他不是......他究竟在尋找什麼價值? 'parent_0_1_0_1'的值或'$ params ['smv_code'] [0] [1] [0] [1]的值' – ElefantPhace