Gan*_*her 2 php debugging error-handling core debug-backtrace
在处理我的一个PHP
项目时,我debug_backtrace()
在代码文件的开头得到了一个函数<?php debug_backtrace() || die ("Direct access not permitted"); ?>
.
在研究它时,我得到了一些解释,它的工作原理是:
在 Drupal 网站中调试 PHP 问题可能是快速和容易的,也可能是严重的问题。PHP 包含一个名为 debug_backtrace 的调试函数,它将打印出直到调用 backtrace 函数的代码链。
当我使用var_dump()
withdebug_backtrace()
我得到以下结果:
array(2) {
[0]=>
array(3) {
["file"]=>
string(61) "C:\xampp\htdocs\folder_name\templates\default\models\home.php"
["line"]=>
int(30)
["function"]=>
string(7) "include"
}
[1]=>
array(4) {
["file"]=>
string(37) "C:\xampp\htdocs\folder_name\index.php"
["line"]=>
int(146)
["args"]=>
array(1) {
[0]=>
string(61) "C:\xampp\htdocs\folder_name\templates\default\models\home.php"
}
["function"]=>
string(7) "include"
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白什么debug_backtrace()
功能完全有效。
请任何人解释是受欢迎的。提前致谢。
学习链接:
来自 PHP 中注册的关闭函数的 debug_backtrace()
举一个基本的例子...
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo "Start...";
print_r(debug_backtrace());
function t1 () {
echo "Start t1...";
print_r(debug_backtrace());
}
function t2() {
echo "Start t2...";
print_r(debug_backtrace());
t1();
}
echo "before calls...";
print_r(debug_backtrace());
t1();
t2();
Run Code Online (Sandbox Code Playgroud)
会输出...
Start...Array
(
)
before calls...Array
(
)
Start t1...Array
(
[0] => Array
(
[file] => /home/nigel/workspace/PHPTest/TestSource/part3.php
[line] => 22
[function] => t1
[args] => Array
(
)
)
)
Start t2...Array
(
[0] => Array
(
[file] => /home/nigel/workspace/PHPTest/TestSource/part3.php
[line] => 23
[function] => t2
[args] => Array
(
)
)
)
Start t1...Array
(
[0] => Array
(
[file] => /home/nigel/workspace/PHPTest/TestSource/part3.php
[line] => 17
[function] => t1
[args] => Array
(
)
)
[1] => Array
(
[file] => /home/nigel/workspace/PHPTest/TestSource/part3.php
[line] => 23
[function] => t2
[args] => Array
(
)
)
)
Run Code Online (Sandbox Code Playgroud)
我希望这表明该debug_backtrace
函数所做的只是返回到目前为止已调用的内容。因此,当您第一次调用时t1
,它只是调用的堆栈跟踪t1
。开始t2
时相同,但在t2
调用时t1
,跟踪会列出对t2
和的调用t1
。
但正如您所看到的,debug_backtrace
fromStart..
什么也没显示,因为没有导致打印此跟踪的代码级别。
在您的情况下,它调用debug_backtrace
并使用or die()
'如果不debug_backtrace
返回任何内容,则die()
'
归档时间: |
|
查看次数: |
3187 次 |
最近记录: |