删除功能中数组的元素



我正在使用一些函数来删除vars。我的代码就像:

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

但在PHP手册中:

unset((函数内部的全局变量,然后使用 $ GLOBALS 数组要这样做:

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

没有任何内容,因为$GLOBALS['arr']['var2']不存在。我只想解开函数内部函数的全局数组元素。

它存在,因为全球可让具有其他var拥有的一切。

编辑:

我尝试这样做,但是当我尝试致电foo()后,然后尝试使用print_r($arr)它同时显示var1和var2,如果我尝试print_r($GLOBALS['arr']['var2']),则显示未定义的索引。...也许是config ...

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);

相关内容

  • 没有找到相关文章

最新更新