【发布时间】:2010-08-12 15:55:37
【问题描述】:
我在文件info.php 中创建了以下函数,用于在页面加载期间调试变量和数据
class Info {
static function watch($what,$msg='',$more=FALSE)
{
echo "<hr/>";
echo "<br/>".$msg.":";
if( is_array($what) || is_object($what) )
{
echo "<pre>";
print_r($what);
echo "</pre>";
}
else{
echo $what;
}
if($more)
{
echo "<br/>METHOD:".__METHOD__;
echo "<br/>LINE:".__LINE__;
}
}
}
现在我从另一个页面 index.php 调用此方法,我在其中包含 info.php
在这个文件中我想调试 POST 数组,所以我写下面的代码
class Testpost {
__construct() { // some basic intializtion }
function getPostdata($postarray) {
$postarray=$_POST;
Info::watch($postarray,'POST ARRAY', TRUE);
}
一切正常,但方法和LINE出现在下方
METHOD:Info::watch();
LINE:17 // ( where this code is written in Info class)
但我想在下面显示
METHOD: Testpost::gtPostdata()
LINE:5( where this function is called in Testpost class)
如果我将$more=TRUE 放在watch() 中,我该怎么做,那么方法和行号应该是从调用它的类开始的。
我可以在监视方法中使用self:: 或parent::吗?或者是其他东西
请建议我如何从其他类中调用魔术常量或者是否有任何其他方法来调试 varaibale? (请不要建议使用Xdebug或任何其他工具)
【问题讨论】: