使用print_r()可读性好,var_dump()信息更全便于深度调试,var_export()生成可执行代码,__toString()实现自定义字符串输出,结合xdebug可美化调试界面,提升开发效率。

在PHP开发中,打印和调试对象是日常工作中非常常见的需求。直接使用echo或
print7>打印对象会报错,因为对象不能被直接转换为字符串。要正确查看对象内容,需要使用合适的调试方法。使用 print_r() 打印对象
print_r() 是最常用的方式之一,能以人类可读的格式输出对象的属性和值。
class User { public $name = 'Alice'; private $age = 25; protected $email = 'alice@example.com'; } $user = new User(); print_r($user);输出结果会显示对象的所有属性,包括访问修饰符:
User Object ( [name] => Alice [age:Alice:private] => 25 [email:protected] => alice@example.com )使用 var_dump() 查看详细信息
var_dump() 提供更详细的调试信息,包括数据类型和结构层次,适合深度调试。
立即学习“PHP免费学习笔记(深入)”;
var_dump($user);输出不仅包含属性值,还包括类型、长度等信息,对排查类型错误很有帮助。
利用 var_export() 获取可执行代码
var_export() 可以输出对象的结构定义(需类支持),返回合法的PHP代码格式,方便复制使用。
echo var_export($user, true);注意:私有和受保护属性可能无法完整导出,除非类实现了 __set_state() 魔术方法。
自定义 __toString() 方法实现字符串输出
如果想让对象像字符串一样被打印,可以在类中定义 __toString() 方法。
public function __toString() { return "User: {$this->name}, Age: {$this->age}"; }之后就可以直接使用
echo $user; 输出指定格式的内容。注意该方法必须返回字符串,否则会报错。结合 xdebug 实现更友好的调试输出
安装并启用 xdebug 扩展后,
var_dump()的输出会自动美化,带颜色、折叠功能,极大提升可读性。无需修改代码,只需确保 php.ini 中启用了 xdebug:
zend_extension=xdebug.so xdebug.mode=develop基本上就这些常用的PHP对象打印与调试技巧。选择合适的方法能快速定位问题,提高开发效率。简单场景用 print_r,深入排查用 var_dump 或 xdebug,需要格式化输出则定义 __toString。调试不复杂,但容易忽略细节。











