Как я могу просмотреть все свойства объекта? Сейчас мне нужно написать новую строку кода для печати каждого свойства объекта.
echo $obj->name;
echo $obj->age;
Могу ли я просмотреть все свойства объекта с помощью цикла foreach или любого другого цикла?
Что-то вроде этого
foreach ($obj as $property => $value)
foreach
петлю, ты делаешь правильноforeach
(с=>
not->
) для итерации по общедоступным свойствам объекта . Вы также можете сделать свой класс Traversable, если хотите другое поведение.Ответы:
Если это только для вывода отладки, вы также можете использовать следующее, чтобы увидеть все типы и значения.
var_dump($obj);
Если вам нужен больший контроль над выводом, вы можете использовать это:
foreach ($obj as $key => $value) { echo "$key => $value\n"; }
источник
Для тестирования я использую следующее:
//return assoc array when called from outside the class it will only contain public properties and values var_dump(get_object_vars($obj));
источник
Иногда вам нужно перечислить переменные объекта, а не для целей отладки. Правильный способ сделать это - использовать get_object_vars ($ object). Он возвращает массив, содержащий все переменные класса и их значения. Затем вы можете просмотреть их в цикле foreach. Если используется внутри самого объекта, просто выполните get_object_vars ($ this)
источник
Вот еще один способ выразить свойство объекта.
foreach ($obj as $key=>$value) { echo "$key => $obj[$key]\n"; }
источник
\ArrayAccess
или является объектомarray
, в противном случаеFATAL ERROR Uncaught Error: Cannot use object of type SomeType as array
Перед тем, как запустить $ object через цикл foreach, вы должны преобразовать его в массив:
$array = (array) $object; foreach($array as $key=>$val){ echo "$key: $val"; echo "<br>"; }
источник