我正在尝试访问下面元素中的数字,但是我无法从中获取值.
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)
$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'不同,因为它们会导致不同的解析器令牌.
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |