Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json#U编码不';t在数组_拼接返回上起作用,但在直接调用时起作用_Php_Arrays - Fatal编程技术网

Php json#U编码不';t在数组_拼接返回上起作用,但在直接调用时起作用

Php json#U编码不';t在数组_拼接返回上起作用,但在直接调用时起作用,php,arrays,Php,Arrays,我的目标很简单,我想在JSON中解析$GLOBALS变量(记录它)。根据这篇Stackoverflow文章,我必须删除递归变量 以下代码起作用: 它返回string(59)“{”GLOBALS:{”\u GET:[],“\u POST:[],“\u COOKIE:[],“\u FILES:[]}}”(in) 但是我必须使用一个中间变量来存储array\u splice结果。当我这样做时,我不工作: 结果是bool(false),而json\u last\u error\u msg()返回

我的目标很简单,我想在JSON中解析
$GLOBALS
变量(记录它)。根据这篇Stackoverflow文章,我必须删除递归变量

以下代码起作用:


它返回
string(59)“{”GLOBALS:{”\u GET:[],“\u POST:[],“\u COOKIE:[],“\u FILES:[]}}”
(in)

但是我必须使用一个中间变量来存储
array\u splice
结果。当我这样做时,我不工作:


结果是
bool(false)
,而
json\u last\u error\u msg()
返回检测到的
递归


这两个版本有什么不同?我真的不明白。对我来说,
foo(bar())
是与
$bar=bar()完全相同的代码;foo($bar)
..

我刚刚理解了我的问题,
数组拼接的调用
删除了
$GLOBALS
变量…但我仍然不明白为什么

我试图将代码放入函数中,因为我认为我的问题是将代码直接放入全局范围:


为什么不使用链接到的问题的解决方案,使用
数组切片()
数组拼接()
返回已删除的元素,而不是数组的其余部分。问题是
$global\u array
本身包含一个条目,这是递归的。为什么要使用
$index-1
作为拼接长度,而不是
1
?如果将代码放在函数中,
$global\u数组
将不是全局的,因此它不会在
$GLOBALS
中。可以使用
数组切片($GLOBALS,0,$index,true)+数组切片($GLOBALS,$index+1,true)
而不是循环。