2012-12-24 125 views
3

我想調試一個類,並使用print_r和echo來查看腳本前進的變量。瞭解爲什麼echo不能在php類函數中工作

但是由於某種原因,我似乎無法從函數內部獲得任何輸出,我聲明瞭這個函數是公開的,但無法使用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的是純粹是爲了測試值是否通過,但我根本沒有得到任何輸出

+6

是否調用實際上曾經得到執行? –

+0

爲什麼你的函數調用在函數之前聲明? – DrinkJavaCodeJava

回答

0

嘗試somothing像這樣(如果添加一些其他statment):

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'; 
    } 
} 
2

如果要返回值以將其分配給$xml_data,則必須實際返回它而不是回顯它。 echo直接發送值到輸出流,而return返回來自該函數的值,從而它可以被分配給一個變量或其他表達式中使用:

​​
1

如果您期望回聲/ print_r的輸出的東西php的標準輸出流(讓你看到它在Web瀏覽器中),但你實際上並沒有看到它由於某種原因,那麼很可能你有輸出緩衝。

嘗試

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

您現在應該看到輸出。

0

感謝您的意見。我已經完成並設法按預期得到print_r輸出 - 該部分是一個簡單的語法錯誤...

我以爲缺少的另一部分是來自變量的輸出,它是一個xml字符串。這是沒有被顯示在頁面上,我認爲是空白的,但它的存在時,我認爲呈現的頁面的源代碼

感謝

+0

嗨,歡迎來到SO。要麼修改原來的問題來添加第二個問題,或者在SO中提出另一個問題。希望有所幫助 – ianace

相關問題