2011-02-12 10 views
60

Jak mogę przechodzić przez wszystkie właściwości obiektu ?. Teraz muszę napisać nową linię kodu, aby wydrukować każdą własność obiektuPętla przez wszystkie właściwości obiektu php

echo $obj->name; 
echo $obj->age; 

mogę pętla przez wszystkie właściwości obiektu za pomocą pętli foreach lub dowolną pętlę?

coś takiego

foreach ($obj as $property => $value) 
+1

Go głowa z 'foreach' pętli robisz prawo –

+4

Korzystając znakiem 'foreach' (z' => 'nie' -> ') do iteracji poprzez obiekt ** publiczne ** właściwości. Możesz także stworzyć swoją klasę [Traversable] (http://php.net/Traversable), jeśli chcesz innego zachowania. – netcoder

+0

@netcoder: dziękuję ale to był tylko literówka – Daric

Odpowiedz

92

Jeśli to jest tylko dla debugowania, można użyć następujących czynności, aby zobaczyć wszystkie rodzaje i wartości, jak również.

var_dump($obj); 

Jeśli chcesz mieć większą kontrolę nad tym wyjściu można użyć tego:

foreach ($obj as $key => $value) { 
    echo "$key => $value\n"; 
} 
+4

"Obiekt klasy stdClass nie mógł zostać przekonwertowany na ciąg znaków" może również być wynikiem błędu, jeśli obiekt nie jest tablicą. – landed

+0

print_r ($ obj); może również pomóc. Drukuje rekursywnie pola danego obiektu. – fandasson

0

Oto kolejny sposób na wyrażenie właściwość obiektu.

foreach ($obj as $key=>$value) { 
    echo "$key => $obj[$key]\n"; 
} 
3

Dla celów testowych używam następujące:

//return assoc array when called from outside the class it will only contain public properties and values 
var_dump(get_object_vars($obj)); 
Powiązane problemy