Accessing a numeric property in a SimpleXMLElement(访问SimpleXMLElement中的数值属性)
本文介绍了访问SimpleXMLElement中的数值属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试访问以下元素中的数字,但无法从中获取值。
echo $object->0; //returns Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$'
SimpleXMLElement Object (
[0:public] => 15810
)
关于如何获得该值有什么建议吗?
更新
我意识到这是一个奇怪的错误...我正在使用eBay API来获取此值。即使我这样做:
$zero = 0;
$print_r($ruleXml->HourlyUsage->$zero);
它仍然显示相同的
SimpleXMLElement Object (
[0:public] => 15810
)
我也尝试了{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
)
所以事情是这样的…
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
推荐答案
$x = 0;
echo $object->$x;
或
echo $object->{0};
原因是‘0’在PHP中不是有效的标识符。因此,当您键入‘0’时,它看到的只是一个T_LNUMBER。所有名称都遵循可变命名约定。唯一的不同之处在于,前面带有->的成员变量不需要$前缀。http://www.php.net/manual/en/language.variables.basics.php
{0}有效,因为{}指示该标识符是内部简单表达式的结果。因此,在本例中,{$x}与$x相同,但{0}与‘0’不同,因为它们产生不同的解析器令牌。
这篇关于访问SimpleXMLElement中的数值属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:访问SimpleXMLElement中的数值属性
基础教程推荐
猜你喜欢
- 超薄框架REST服务两次获得输出 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01