2012-06-01 73 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一樣。 –