3

クラスをデバッグしようとしていて、スクリプトの進行に合わせて print_r と echo を使用して変数を表示しています。

ただし、何らかの理由で関数内から出力を取得できないようです。関数をパブリックに宣言しましたが、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

このように落ち着いてみてください(他の場合はステートメントを追加してください):

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 に答える