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

在PHP开发中,打印和调试对象是日常工作中非常常见的需求。直接使用echo或
print</7>打印对象会报错,因为对象不能被直接转换为字符串。要正确查看对象内容,需要使用合适的调试方法。</p>
<H3>使用 print_r() 打印对象</H3>
<p><strong>print_r()</strong> 是最常用的方式之一,能以人类可读的格式输出对象的属性和值。</p>
<font color="#0000FF">
<pre class="brush:php;toolbar:false;">
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() 提供更详细的调试信息,包括数据类型和结构层次,适合深度调试。
立即学习“PHP免费学习笔记(深入)”;
var_dump($user);
输出不仅包含属性值,还包括类型、长度等信息,对排查类型错误很有帮助。
var_export() 可以输出对象的结构定义(需类支持),返回合法的PHP代码格式,方便复制使用。
echo var_export($user, true);
注意:私有和受保护属性可能无法完整导出,除非类实现了 __set_state() 魔术方法。
如果想让对象像字符串一样被打印,可以在类中定义 __toString() 方法。
public function __toString() {
return "User: {$this->name}, Age: {$this->age}";
}
之后就可以直接使用 echo $user; 输出指定格式的内容。注意该方法必须返回字符串,否则会报错。
安装并启用 xdebug 扩展后,var_dump() 的输出会自动美化,带颜色、折叠功能,极大提升可读性。
无需修改代码,只需确保 php.ini 中启用了 xdebug:
zend_extension=xdebug.so xdebug.mode=develop
基本上就这些常用的PHP对象打印与调试技巧。选择合适的方法能快速定位问题,提高开发效率。简单场景用 print_r,深入排查用 var_dump 或 xdebug,需要格式化输出则定义 __toString。调试不复杂,但容易忽略细节。
以上就是php怎么打印对象_php对象打印与调试技巧的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号