【问题标题】:PHP: assigning an empty object dynamically to stdClassPHP:将空对象动态分配给stdClass
【发布时间】:2015-08-20 04:31:10
【问题描述】:

您好,我正在四处探索并找到导致我出错的东西。

我的脚本正在制作一个 json 格式,以最简单的方式阅读和编写我发现的代码。

$animal->dog = "dalmatian";
$animal->cat = "persian";

echo json_encode($animal);

此脚本导致我出现以下错误:

警告:从空值创建默认对象

在 stackoverflow 中搜索后,我找到了使用 stdClass 的解决方案。

解决方案:

$animal = new stdClass;

这有效并解决了错误,但是我的脚本上有很多对象我要在 stdClass 上声明每个对象怎么样?

喜欢

$animals = new stdClass;
$mammals = new stdClass;

有什么方法可以获取每个空的 OBJECT 并动态声明到 stdClass?

【问题讨论】:

    标签: php json stdclass


    【解决方案1】:

    这可能会有所帮助 -

    $animal = (object) array();
    $animal->dog = "dalmatian";
    $animal->cat = "persian";
    
    echo json_encode($animal);
    

    或者你可以将它们存储到数组中 -

    $animal['dog'] = "dalmatian";
    $animal['cat'] = "persian";
    
    echo json_encode($animal);
    

    将它们存储到数组中会起作用。如果您希望它成为一个对象,那么只需将其强制转换即可。

    $animal = (object) $animal;
    

    【讨论】:

    • 我明白了。所以我要再次分配每个空对象?像 $animal = (object) array(); $mammal = (object) array(): ....等等
    • 为什么需要他们成为对象?如果你真的需要它,那么将它们存储到数组中,然后将它们全部转换为对象。
    • 我尝试使用数组,但在我的情况下,将它们作为一个对象比将它们放在数组中会导致多维数组更有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2012-10-18
    • 2014-10-29
    • 1970-01-01
    • 2023-03-29
    • 2011-08-31
    相关资源
    最近更新 更多