Я использую некоторые функции для удаления 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();
Вы можете передать переменную по ссылке:
$arr['var1'] = 'Hello';
$arr['var2'] = 'world';
function foo(&$a){
unset($a['var2']);
}
foo($arr);
https://secure.php.net/manual/en/language.references.pass.php
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);