我正在使用PHP在一个项目中传递一些数据给javascript。在我的PHP我有:为什么json_encoded对象会以javascript中的数组结尾?
<?php
$allprojects = $pages->find('projects')->children();
$transfer = array();
$i=0;
foreach ($allprojects as $p) {
$transfer[] = array(
'i' => $i,
'title' => $p->title()->value,
'url' => $p->url(),
'thumb' => thumb($p->children()->first()->images()->first(), array('width'=>170))
);
$i++;
}
?>
<script>
var projects = <?php print json_encode($transfer); ?>
</script>
如果我再尝试使用这个变量projects
它是一个数组。 I .: .:
projects instanceof Array == true
我有点困惑,为什么这是这种情况。任何人都可以说明情况吗?
要定义数组你在问为什么它是一个数组? – PeeHaa
我认为他的意思是因为关联数组更像对象 - 尽管很多人并不知道JavaScript数组也可以具有非数字键。 –
@BrettZamir更有趣的是,它不是一个关联数组;-) – PeeHaa