Php 从simplexmlobject获取相同空对象的不同输出。。!

Php 从simplexmlobject获取相同空对象的不同输出。。!,php,object,simplexml,Php,Object,Simplexml,我对PHP简单xml obejct有一个问题。我正因为这个而陷入困境。 对于上面的代码,如果端口标记不在xml中,我将获得$access->port的两个不同输出。下面给出了两台不同机器的输出。 甚至端口标记也不存在于xml中,它位于另一个环境的foreach中。此外,在本地环境中,空obejct的计数为“0”,而在其他环境中为cout“1” 1) Windows计算机:本地环境 SimpleXMLElement对象() 对象(SimpleXMLElement)[10] 计数=0 2) Linu

我对PHP简单xml obejct有一个问题。我正因为这个而陷入困境。 对于上面的代码,如果端口标记不在xml中,我将获得$access->port的两个不同输出。下面给出了两台不同机器的输出。 甚至端口标记也不存在于xml中,它位于另一个环境的foreach中。此外,在本地环境中,空obejct的计数为“0”,而在其他环境中为cout“1”

1) Windows计算机:本地环境
SimpleXMLElement对象()
对象(SimpleXMLElement)[10]
计数=0

2) Linux计算机:其他环境
SimpleXMLElement对象()
对象(simplexmlement)#60(0){}
计数=1
存在端口标签


您能否帮助我了解为什么同一个xml项目的输出之间存在差异。

演示如何获取此元素。仅仅通过输出无法确定原因。为了找到原因,我们需要看看你在哪里this@Oleg:问题是,如果xml在$location->products->evpn->access->access->cpes->cpe中没有标记,那么它就不应该进入foreach循环…但它进入了…这只是我想知道为什么它进入foreach循环,为什么相同的空obejct的计数会给出不同的值作为0和1。您还可以看到对象(SimpleXMLElement)[10]和对象(SimpleXMLElement)#60(0){}的区别SimpleXMLElement不是常见的数组,它们是实现迭代器的对象。普通的
foreach
count
并不总是像普通的那样使用它们arrays@Oleg当前位置我同意,但为什么它在一种环境下正确工作,而在另一种环境下不正确我想知道为什么不同之处在于它可以帮助我摆脱困境,因为我希望两者都能同样工作。
  foreach ( $location->products->evpn->accesses->access->cpes->cpe as $access )   {    
  print_r($access->port);
  echo "Count = ".count($access->port);

  foreach($access->port) {
    echo "Port tag is present";
  }
}