エラーが発生するという問題があります
PHP 致命的なエラー: Call-time pass-by-reference が削除されました....
私はいくつかの同様の質問を発見しました。
しかし、関数宣言を変更できないビルトイン関数など、渡された値を実行時に参照として宣言する必要がある状況をどのように解決できるかについて、本当の答えを提供するものは何もありません??。
たとえば、この例では、3 番目の array_walk パラメータを参照として使用しています。
このソリューションを使用して、このコードで配列のインデックスを変更しようとしました:
function __reindex(&$v,$k, &$aReindexed)
{
$kNew = $k+100;
$aReindexed[$kNew] = $v;
}
$aTest = array(4,"f","_","test");
array_walk($aTest,"__reindex", &$aReindexed );
参照のないコードは機能しません (新しい配列は変更されず、空のままです)。
そして、それが機能するリファレンスを含むコードは機能しますが、php 5.4以降では機能しません。
それで、そのような状況を処理する方法は何ですか?
ps「__reindex関数で$k変数を参照として宣言する」と言うのが好きなら、それはうまくいきません(それが私が試した最初の方法でした)