【问题标题】:Accessing number object in php [duplicate]在php中访问数字对象[重复]
【发布时间】:2018-10-26 01:01:07
【问题描述】:

我在 foreach 循环中得到一个对象的值,它是一个数字

> array(12) { [0]=> object(stdClass)#34 (22) {
                    [201609]=> string(6) "130000"
                  } }

当我尝试访问$query->201609 时出现错误

解析错误:语法错误,意外的 T_LNUMBER,需要 T_STRING 或 T_VARIABLE 或 '{' 或 '$'

我尝试使用$query->{201609} 访问它给我的值是 0 而不是 130000

如何获得该属性?

这个问题不是重复的。我已经尝试了另一个问题,它对我没有帮助,因为它处于循环中。

【问题讨论】:

标签: php arrays object


【解决方案1】:

这适用于 PHP 7.2.4(也可能是旧版本):

$property = 201609;
var_dump($query->$property);

这样测试:

$x = new stdClass();
$p = 123;
$x->$p = 456;
var_dump($x);

输出:

object(stdClass)#3 (1) {
  ["123"]=>
  int(456)
}

假设 "$query" 是一个数组,而不是有问题的对象:

$property = 201609;
var_dump($query[0]->$property);

【讨论】:

    【解决方案2】:

    试试

    $query->{'201609'}
    

    似乎与Get a PHP object property that is a number重复

    【讨论】:

    • 我试过了,它给了我 0 值而不是 130000。我在我的问题中说过。
    猜你喜欢
    • 2013-06-14
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2016-07-08
    相关资源
    最近更新 更多