将PHP对象数组转换为javascript数组

将PHP对象数组转换为javascript数组,javascript,php,arrays,object,Javascript,Php,Arrays,Object,我使用函数get_all()检索图像路径;。此get_all函数将图像作为对象检索。此对象具有属性名称、源路径和日期。我希望我的javascript向div添加图像。我有以下内容: php包含Jquery和另一个JS文件等文件 <?php require_once("../../include/instantiate.php"); $photos = Photos::get_all(); $JSPhotos; foreach($photos as $

我使用函数get_all()检索图像路径;。此get_all函数将图像作为对象检索。此对象具有属性名称、源路径和日期。我希望我的javascript向div添加图像。我有以下内容:

php包含Jquery和另一个JS文件等文件

<?php
    require_once("../../include/instantiate.php");    
    $photos = Photos::get_all();
    $JSPhotos;
    foreach($photos as $photo) { $JSPhotos + $photo->source_path; }
?>

<script type="text/javascript">
    $(document).ready(function() {
        var photos = <?php echo json_encode($JSPhotos); ?>;
        for(var i = 0; i <= 10; i++)
        {
            create_image("../"+photos[i]);
        }
    });

您没有为变量赋值

您可能想要:

$JSPhotos = array();
foreach($photos as $photo) {
  $JSPhotos[] = $photo->source_path;
}

或者类似的东西。

您得到了什么错误?显然javascript部分中的变量“photos”是“null”。这是因为您刚刚执行了$JSPhotos+。没有为变量分配任何内容您应该将实际的对象图传递给
json\u encode
-应该怎么做
$JSPhotos+$photo->source\u path
?它肯定不会创建数组。@user2014780可能是,但也可能包含太多数据。创建中间结构没有问题(我实际上建议这样做)。。如果它确实创建正确。谢谢。我确实做到了这一点,但不幸的是,我现在得到了破碎的图像。我已经检查了JS中photos变量的内容及其所有“null”。@user2014780检查您的
$photos
$JSPhotos
变量。它们包含什么内容(执行
var\u dump()
)?谢谢,现在可以使用了。但我记不起是什么问题(内存不足)。但是现在我创建了一个不起作用的函数。你能查一下手术单吗?我相信你一下子就解决了,哈哈@user2014780您需要显示生成的html或完整的函数。不管是哪种方式,我都建议发布一个新问题,最好是一个在线示例进行测试。@user2014780顺便说一句,您可能需要事件委派,因为在添加单击处理程序时,元素可能尚未添加到页面中。
$JSPhotos = array();
foreach($photos as $photo) {
  $JSPhotos[] = $photo->source_path;
}