循环遍历对象php的所有属性

Dar*_*ric 77 php

如何循环遍历对象的所有属性?现在我必须编写一个新的代码行来打印对象的每个属性

echo $obj->name;
echo $obj->age;
Run Code Online (Sandbox Code Playgroud)

我可以使用foreach循环或任何循环遍历对象的所有属性吗?

像这样的东西

foreach ($obj as $property => $value)  
Run Code Online (Sandbox Code Playgroud)

Dav*_*ess 126

如果这只是用于调试输出,您可以使用以下内容来查看所有类型和值.

var_dump($obj);
Run Code Online (Sandbox Code Playgroud)

如果您想要更多地控制输出,可以使用:

foreach ($obj as $key => $value) {
    echo "$key => $value\n";
}
Run Code Online (Sandbox Code Playgroud)

  • "类stdClass的对象无法转换为字符串"如果对象不是数组,则很可能是结果错误. (6认同)

Rex*_*Rex 9

在运行$obj循环之前,如果您要查找属性而不考虑可见性,则foreach必须将其转换为 an array(请参阅:强制转换为数组)。

HTML 输出示例 (PHP 8.1):

foreach ((array)$obj as $key => $val) {
    printf(
        "%s: %s<br>\n", 
        htmlspecialchars("$key"), 
        htmlspecialchars("$val"),
    );
}
Run Code Online (Sandbox Code Playgroud)


Dim*_*imi 5

出于测试目的,我使用以下内容:

//return assoc array when called from outside the class it will only contain public properties and values 
var_dump(get_object_vars($obj)); 
Run Code Online (Sandbox Code Playgroud)