[英]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.