Arr::macro('replaceKey', function (string $from, string $into, array &$inside) {
if (! array_key_exists($from, $inside)) {
throw new Exception("Undefined offset: $from");
}
$inside[$into] = $inside[$from];
unset($inside[$from]);
});
< /code>
попробовал то же самое с признаком и простой функцией, и она работает. < /p>
// inside trait
public function replaceKey(string $from, string $into, array &$inside)
{
if (! array_key_exists($from, $inside)) {
throw new Exception("Undefined offset: $from");
}
$inside[$into] = $inside[$from];
unset($inside[$from]);
}
Попытка создать вспомогательный метод для массива, который заменяет ключ в заданном значении без возврата, но это не работает. < /p> [code]Arr::macro('replaceKey', function (string $from, string $into, array &$inside) { if (! array_key_exists($from, $inside)) { throw new Exception("Undefined offset: $from"); }
$inside[$into] = $inside[$from];
unset($inside[$from]); }); < /code> попробовал то же самое с признаком и простой функцией, и она работает. < /p> // inside trait
public function replaceKey(string $from, string $into, array &$inside) { if (! array_key_exists($from, $inside)) { throw new Exception("Undefined offset: $from"); }
$inside[$into] = $inside[$from];
unset($inside[$from]); } [/code] может кто -нибудь объяснить, почему?