2012-06-01 75 views
1

什么是对象的var_dump中括号之间的整数的名称。我如何使用PHP访问它?PHP对象()标识符

我指的是下一个例子中的(3)。

object(SimpleXMLElement)#18 (3) { 
     ["ID"]=> 
     string(3) "xx" 
     ["Name"]=> 
     string(25) "xx" 
     ["Date"]=> 
     string(10) "xx" 
    } 

回答

2

这是一个对象的属性的数量。算这个,你可以投你的对象数组并用count()

$number = count((array)$object); 

编辑:我做了一个小测试(see at codepad)至极prooves是铸造一个数组是你想做的事,而不是什么使用get_object_vars()作为其他人提到,因为后者不会计算私有属性,而数组转换以及var_dump都会计数这些值。

0

这是该对象的公共属性的数量,而不是直接访问

+0

那么,什么是'计数(get_object_vars($对象))'做什么? – CodeCaster

+0

@CodeCaster它不返回对象中公共变量的数量(除了在返回的数组上运行计数)。只要使用count($ object)就可以返回上面说的答案。 –

+0

get_object_vars()将返回这些属性的数组,但是您需要在该数组上执行count()以获取属性的数量,因此无法直接访问 –

0

对象的var_dump中括号之间的整数名称是什么。我如何使用PHP访问它?

我指的是下一个例子中的(3)。

这是它拥有的公共成员的数量(即ID,姓名和日期)。如果你想知道这个编号,你可以只使用count(get_object_vars($object))

<?php 

$foo = new stdClass; 
$foo->foo = 42; 
$foo->bar = 42; 
$foo->baz = 42; 

var_dump(count(get_object_vars($foo))); 
+0

如果对象具有私有属性,'var_dump'将计数那些get_object_vars不会 - 因此这并不总是给出预期的结果。 – oezi

+0

@oezi它会在您计算* public *属性时,而SimpleXMLElement碰巧只有公共属性,就像stdClass一样。 –