用 Xdebug 修正 PHP 应用程序中的错误(4)
来源:www.phpres.com 作者:Angelover 出处:www.phpres.com 2007-9-21 14:44:18 进入讨论组关 键 词:
解释转储报告,用 Xdebug 修正 PHP 应用程序中的错误
以下示例显示了出错时发生的情况。把您的 “有待改进” 的代码修改为类似清单 5 所示的代码。
清单 5. 修改错误代码
<?php
function deep_end( $count ) {
// add one to the frame count
$count += 1;
if ( $count < 48 ) {
deep_end( $count );
}
else {
trigger_error( "going off the deep end!" );
}
}
// main() is called to start the program,
// so the call stack begins with one frame
deep_end( 1 );
?>
|
如果运行这段新代码,您应当会看到大量信息,如下所示:
图 3. 出错时超全局变量、堆栈和局部变量的转储
传递给 trigger_error 的消息文本显示在顶部。底部是受请求的 $_SERVER 元素列表和已经定义的 $_REQUEST 元素列表。最底部是 #48 范围中的变量列表,这是根据清单对 deep_end() 进行的调用。在调用中,$count 是整数 48。当此 Xdebug 配置就绪后,您现在有更多的线索可以跟踪犯罪者。
下面是另外一个技巧:Xdebug 提供了一个增强型 var_dump() 函数,它对于 PHP 数组和类尤为有帮助。例如,清单 6 显示了简单的(PHP V4)类和实例。
清单 6. PHP V4 类和实例
<?php
class Person {
var $name;
var $surname;
var $age;
var $children = array();
function Person( $name, $surname, $age, $children = null) {
$this->name = $name;
$this->surname = $surname;
$this->age = $age;
foreach ( $children as $child ) {
$this->children[] = $child;
}
}
}
$boy = new Person( 'Joe', 'Smith', 4 );
$girl = new Person( 'Jane', 'Smith', 6 );
$mom = new Person( 'Mary', 'Smith', 34, array( $boy, $girl ) );
var_dump( $boy, $mom );
?>
|
清单 7 显示了 var_dump() 的输出。
清单 7. var_dump() 输出
object(person)
var 'name' => string 'Joe' (length=3)
var 'surname' => string 'Smith' (length=5)
var 'age' => int 4
var 'children' =>
array
empty
object(person)
var 'name' => string 'Mary' (length=4)
var 'surname' => string 'Smith' (length=5)
var 'age' => int 34
var 'children' =>
array
0 =>
object(person)
var 'name' => string 'Joe' (length=3)
var 'surname' => string 'Smith' (length=5)
var 'age' => int 4
var 'children' =>
array
empty
1 =>
object(person)
var 'name' => string 'Jane' (length=4)
var 'surname' => string 'Smith' (length=5)
var 'age' => int 6
var 'children' =>
array
empty
|
如果结合使用 Xdebug 与 PHP V5 类,转储包括 public、private 和 protected 之类的属性。
待续...
欢迎进入PHP开发资源论坛讨论。
·Zope的优点及和Apache+PHP+MySQL的比较
·PHP面向对象、类经典教程[2]
·PHP面向对象、类经典教程[1]
·用 Xdebug 修正 PHP 应用程序中的错误(5)
·用 Xdebug 修正 PHP 应用程序中的错误(3)
·用 Xdebug 修正 PHP 应用程序中的错误(2)
·用 Xdebug 修正 PHP 应用程序中的错误(1)
·黑防黑:黑客口述—关于Php后门的隐藏技巧
·PRADO框架TDataGrid使用教程(1)
·php 分析rss代码一段
·PHP面向对象、类经典教程[2]
·PHP面向对象、类经典教程[1]
·用 Xdebug 修正 PHP 应用程序中的错误(5)
·用 Xdebug 修正 PHP 应用程序中的错误(3)
·用 Xdebug 修正 PHP 应用程序中的错误(2)
·用 Xdebug 修正 PHP 应用程序中的错误(1)
·黑防黑:黑客口述—关于Php后门的隐藏技巧
·PRADO框架TDataGrid使用教程(1)
·php 分析rss代码一段
热门技术文档
·Zope的优点及和Apache+PHP+MySQL的比较
·Windows 下的 PHP 扩展编程
·PHP面向对象、类经典教程[2]
·PHP面向对象、类经典教程[1]
·用 Xdebug 修正 PHP 应用程序中的错误(5)
·用 Xdebug 修正 PHP 应用程序中的错误(3)
·用 Xdebug 修正 PHP 应用程序中的错误(2)
·用 Xdebug 修正 PHP 应用程序中的错误(1)
·php时间求法(二)
·来自若水修改---动态选择框
·Windows 下的 PHP 扩展编程
·PHP面向对象、类经典教程[2]
·PHP面向对象、类经典教程[1]
·用 Xdebug 修正 PHP 应用程序中的错误(5)
·用 Xdebug 修正 PHP 应用程序中的错误(3)
·用 Xdebug 修正 PHP 应用程序中的错误(2)
·用 Xdebug 修正 PHP 应用程序中的错误(1)
·php时间求法(二)
·来自若水修改---动态选择框
最新图文档
本站编辑推荐:(本站开通Delphi4PHP专区,欢迎进入论坛交流!)
- > 3分钟快速了解 Delphi for PHP 特色 (中文), PDF档
- > 购买Delphi for PHP的五大理由, PDF档
- > Delphi for PHP 使用规格介绍, PDF档
- > Delphi for PHP 問答集 (From CodeGear)
- > Delphi for PHP 产品价格表
编缉最近更新文章
网站赞助商
搜索您感兴趣的内容



