我得到的错误“严格的标准:只有变量应该通过参考传递”:严格的标准,只有变量应该传递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