PHP对象()标识符

PHP对象()标识符,php,object,identifier,Php,Object,Identifier,对象的var_转储中括号之间的整数的名称是什么。我如何使用PHP访问它 我指的是下一个例子中的(3) 它是该对象的公共属性数,并且不可直接访问这是一个对象的属性数。要计算此值,可以将对象强制转换为数组并使用: EDIT:我做了一个小测试(),它证明对数组进行强制转换是您想要做的,而不是像其他人提到的那样使用get\u object\u vars(),因为后者不计算私有属性,而数组强制转换和var\u dump都计算私有属性 对象的var_转储中括号之间的整数的名称是什么。我如何使用PHP访问它

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

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


它是该对象的公共属性数,并且不可直接访问

这是一个对象的属性数。要计算此值,可以将对象强制转换为数组并使用:

EDIT:我做了一个小测试(),它证明对数组进行强制转换是您想要做的,而不是像其他人提到的那样使用
get\u object\u vars()
,因为后者不计算私有属性,而数组强制转换和var\u dump都计算私有属性

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

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

这是它拥有的公共成员数量(即ID、姓名和日期)。如果您想知道这个数字,可以使用
count(get\u object\u vars($object))

<?php

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

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

那么什么是
计数(get\u object\u vars($object))
do?@CodeCaster它不返回对象中公共变量的数量(除了对返回的数组进行计数)。仅使用count($object)将返回上述答案所示的数字。get_object_vars()将返回这些属性的数组,但您需要对该数组执行count()以获取属性的数量,因此不可直接访问问题不在于是否可以通过一次且仅一次函数调用来完成。如果对象具有私有属性,
var\u dump
将计算这些属性,而get\u object\u vars不计算这些属性-因此这并不总是给出预期的结果。@oezi但在计算公共属性时会这样,SimpleXMLElement恰好只有公共属性,就像stdClass一样。
$number = count((array)$object);
<?php

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

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