我正在使用一些函数来删除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);