繁体   English   中英

在php中定义数组

[英]Defining array in php

$result[] = array("'../../folder1/insidefolder1'","'../../folder2/insidefolder2'");
define('dirarr', serialize($result));

我想像上面定义一个数组。 然后我像下面这样print_r()

print_r(dirarr);

但是我没有得到期望的输出。 我想得到这样的东西["'../../folder1/insidefolder1'","'../../folder2/insidefolder2'"]

相反,我得到这样的东西

a:1:{i:0; a:2:{i:0; s:29:“'../../ folder1 / insidefolder1'” ;; i:1; s:29:“'../。 ./folder2/insidefolder2'“;}}警告:第219行中为foreach()提供了无效的参数

define('dirarr', serialize($result));

它序列化数组; 有关更多详细信息,请参见serialize()手册页

当您想使用该值时,需要将其反unserialize()为以下形式:

$unserializedArray = unserialize(dirarr);

当你做print_r(dirarr); 你会得到一个序列化的字符串

在将其用作数组之前,需要对其进行反序列化。

$result[] =     array("'../../folder1/insidefolder1'","'../../folder2/insidefolder2'");
define('dirarr', serialize($result));

然后

$array = unserialize(dirarr);
print_r($array); // will give you the expected result

serialize序列化数组。 也许您想要json格式? 所以不是:

define('dirarr', serialize($result));

define('dirarr', json_encode($result));

要不就

define('dirarr', $result);

这一切都取决于您以后要做什么

$result[] =array("'../../folder1/insidefolder1'","'../../folder2/insidefolder2'");
print_r($result);

请删除此代码。 将字符串从php传递到javascript仅需要序列化。

define('dirarr', serialize($result));

我猜你不需要序列化,但是json_encode()

$result[] = array("'../../folder1/insidefolder1'","'../../folder2/insidefolder2'");
define('dirarr', json_encode($result));

使用json_encode(),您可以在JavaScript中轻松使用此数组。 序列化的工作方式不同。 最好通过某种通信(例如套接字,会话,api)传递对象,然后反序列化以在同一位置获得相同的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM