我得到的錯誤「嚴格的標準:只有變量應該通過參考傳遞」:嚴格的標準,只有變量應該傳遞PHP錯誤
$phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
上線18和20
線18
第20行是:$phpinfo[end(array_keys($phpinfo))][] = $match[2];
這是一個安裝腳本的一部分,這是一個完整的PHP代碼片段:
<?php
ob_start();
phpinfo(-1);
$phpinfo = array('phpinfo' => array());
if(preg_match_all('#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>)?)?</tr>)#s', ob_get_clean(), $matches, PREG_SET_ORDER))
foreach($matches as $match){
if(strlen($match[1]))
$phpinfo[$match[1]] = array();
elseif(isset($match[3]))
$phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
else
$phpinfo[end(array_keys($phpinfo))][] = $match[2];
}
非常感謝任何幫助,你們可以給我。
aray_pop不解決問題,我仍然得到了嚴格的標準警告。通過你的邏輯array_pop也修改原始數組,所以它也應該參考 – zardilior
參考感謝,不知道我在那裏想什麼。我已經更新了答案。 – cmbuckley