访问SimpleXMLElement中的数字属性

Web*_*net 1 php simplexml

我正在尝试访问下面元素中的数字,但是我无法从中获取值.

echo $object->0; //returns Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$'

SimpleXMLElement Object ( 
    [0:public] => 15810
)
Run Code Online (Sandbox Code Playgroud)

关于如何获得这个价值的任何想法?

更新

我意识到这是一个奇怪的错误......我正在使用ebay API来获取此值.即使我这样做:

  $zero = 0;
  $print_r($ruleXml->HourlyUsage->$zero);
Run Code Online (Sandbox Code Playgroud)

它仍然显示相同

SimpleXMLElement Object ( 
    [0:public] => 15810
)
Run Code Online (Sandbox Code Playgroud)

我也试过{0}

这是我正在使用的输出....

[1] => SimpleXMLElement Object ( 
        [CallName:public] => AddItem
        [CountsTowardAggregate:public] => false
        [DailyHardLimit:public] => 100000
        [DailySoftLimit:public] => 100000
        [DailyUsage:public] => 0
        [HourlyHardLimit:public] => 100000
        [HourlySoftLimit:public] => 100000
        [HourlyUsage:public] => 0
        [Period:public] => -1
        [PeriodicHardLimit:public] => 0
        [PeriodicSoftLimit:public] => 0
        [PeriodicUsage:public] => 0
        [ModTime:public] => 2010-05-04T18:06:08.000Z
        [RuleCurrentStatus:public] => NotSet
        [RuleStatus:public] => RuleOn
    )
Run Code Online (Sandbox Code Playgroud)

所以这就是......

number_format($ruleXml->HourlyUsage) //throws the error: number_format() expects parameter 1 to be double, object given

$ruleXml->HourlyUsage //shows the value on the page
Run Code Online (Sandbox Code Playgroud)

irc*_*ell 6

$x = 0;
echo $object->$x;
Run Code Online (Sandbox Code Playgroud)

要么

echo $object->{0};
Run Code Online (Sandbox Code Playgroud)

原因是'0'不是PHP中的有效标识符.因此,当您键入"0"时,它看到的只是一个T_LNUMBER.所有名称都遵循可变命名约定.唯一的偏差是前面带有 - >的成员变量不需要$前缀. http://www.php.net/manual/en/language.variables.basics.php

{0}有效,因为{}表示标识符是内部简单表达式的结果.因此{$ x}在这种情况下与$ x相同,但{0}与'0'不同,因为它们会导致不同的解析器令牌.