我正在尝试调试一个类,并使用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纯粹是为了测试传递的值,但我根本没有得到任何输出
答案 0 :(得分:2)
如果要返回值以将其分配给$xml_data
,则必须实际返回它而不是回显它。 echo
将值直接发送到输出流,而return
返回函数中的值,以便可以将其赋值给变量或在其他表达式中使用:
public function convert_to_xml($rs) {
return "test variable:";
}
答案 1 :(得分: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);
}
您现在应该看到输出。
答案 2 :(得分: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';
}
}
答案 3 :(得分:0)
感谢您的投入。我已经完成并设法按预期获得print_r输出 - 该部分是一个简单的语法错误...
我认为缺少的另一部分是变量的输出,它是一个xml字符串。这没有显示在页面上,我认为是空白的,但是当我查看渲染页面的源代码时它就在那里
由于