SimpleXML オブジェクトのコンテンツをその場で解読する関数を作成しています。
function xmlWalkerDecrypt(&$xmlObj, $aesKey) {
if ($xmlObj->count()>0){
foreach($xmlObj as &$child){ //line 154
xmlWalkerDecrypt($child, $aesKey);
}
}
else{
$xmlObj = companyAES($xmlObj, $aesKey, 'decrypt');
}
}
これにより、WAMP で次のエラーがスローされます。
Fatal error: An iterator cannot be used with foreach by reference in C:\wamp\www\_assets\walk.php on line 154
出力ではなく参照による編集を目的として、SimpleXML オブジェクトを反復処理することは可能ですか?
私も試しました:
function xmlWalkerDecrypt(&$xmlObj, $aesKey) {
if ($xmlObj->count()>0){
foreach($xmlObj->children() as &$child){ //line 154
xmlWalkerDecrypt($child, $aesKey);
}
}
else{
$xmlObj = companyAES($xmlObj, $aesKey, 'decrypt');
}
}
しかし、それは次のエラーを生成します:
致命的なエラー: C:\wamp\www_assets\myFile.php の 154 行目の一時配列式の要素への参照を作成できません