Удалить элемент массива в функции

Я использую некоторые функции для удаления VAR. Мой код похож на:

<?
$arr['var1'] = 'Hello';
$arr['var2'] = 'world';
function foo(){
global $arr;
unset($arr['var2']);
}
foo();

Но в руководстве по PHP:

Чтобы снять () глобальную переменную внутри функции, затем используйте
$ GLOBALS массив для этого:

unset($GLOBALS['arr']['var2']);

Ничего не сбрасывает, потому что $GLOBALS['arr']['var2'] не существует
Я только хочу сбросить GLOBAL элемент массива внутри функции.

Он существует, потому что глобальные переменные являются супервариабельными и у него есть все, что есть у других вар.

редактировать:

Я пытался сделать это, но после того, как я пытаюсь позвонить foo() тогда я пытаюсь print_r($arr)
это показывает и var1 и var2, и если я пытаюсь print_r($GLOBALS['arr']['var2']) это показывает неопределенный индекс …. Может быть, это будет конфигурации …

edit2

Я опечатал это в моем сценарии. Так что это работает …

Полный рабочий код:

<?
$arr['var1'] = 'Hello';
$arr['var2'] = 'world';
function foo(){
global $arr;
unset($GLOBALS['arr']['var2']);
}
foo();

-2

Решение

Вы можете передать переменную по ссылке:

$arr['var1'] = 'Hello';
$arr['var2'] = 'world';
function foo(&$a){
unset($a['var2']);
}
foo($arr);

https://secure.php.net/manual/en/language.references.pass.php

1

Другие решения

unset($GLOBALS['arr']['var2']); верно.

посмотреть здесь https://3v4l.org/rCN5h

<?php
$arr['var1'] = 'Hello';
$arr['var2'] = 'world';
function foo(){
unset($GLOBALS['arr']['var2']);
}
var_dump($arr);
foo();
var_dump($arr);
0

По вопросам рекламы [email protected]