3

我正在尝试调试一个类并使用 print_r 和 echo 在脚本进行时查看变量。

但是由于某种原因,我似乎无法从函数中获得任何输出,我已将函数声明为 public,但无法使用 print、echo 或 print_r 获得任何输出。

我在这里误解了一些基本的东西 - 任何人都可以帮忙。

这是我的代码的一些摘录:

此调用来自类中的公共函数:

$xml_data = $this->convert_to_xml($rs);

该方法如下所示:

public function convert_to_xml($rs) {
    echo "test variable:";
    print_r($rs);
}

print_r 纯粹是为了测试正在传递的值,但我根本没有得到任何输出

4

4 回答 4

2

如果要返回值以将其分配给$xml_data,则必须实际返回它而不是回显它。echo将值直接发送到输出流,同时return从函数返回值,以便可以将其分配给变量或用于其他表达式:

public function convert_to_xml($rs) {
     return "test variable:";
}
于 2012-12-24T21:25:50.907 回答
1

如果您希望 echo/print_r 向 php 的 stdout 流输出某些内容(以便您在 Web 浏览器中看到它),但由于某种原因您实际上并没有看到它,那么很可能您打开了输出缓冲。

尝试

public function convert_to_xml($rs) {
    while (ob_get_level()) 
        ob_end_flush();
     echo "test variable:";
print_r($rs);
}

您现在应该看到输出。

于 2012-12-24T21:33:11.287 回答
0

尝试这样的事情(添加一些 if else 语句):

public function convert_to_xml($rs = NULL /* this is by default */ ) {
     if(isset($rs) && !empty($rs)){
        var_dump($rs);
     } else {
        echo 'Variable not passed or empty';
     }
}
于 2012-12-24T21:32:48.600 回答
0

感谢您的输入。我已经完成并设法按预期获得了 print_r 输出 - 那部分是一个简单的语法错误......

我认为缺少的另一部分是变量的输出,它是一个 xml 字符串。这没有显示在页面上,我认为它是空白的,但是当我查看渲染页面的源代码时它就在那里

谢谢

于 2012-12-24T22:40:08.457 回答