2012-03-26 69 views
0
錯誤

在分配型鑄造陣列CodeIgniter的會議上,我得到這個錯誤對象:用htmlspecialchars()預計參數1爲字符串,鑑於笨

A PHP Error was encountered 
Severity: Warning 

Message: htmlspecialchars() expects parameter 1 to be string, object given 

Filename: libraries/Profiler.php 

Line Number: 514 

代碼的問題:

$guest = array('email' => 'empty', 'username' => 'Guest'); 
$this->session->set_userdata(array('current_user' => (object)$guest)); 
+0

我剛剛遇到了這個問題。對我來說,它在我的配置變量中有一個'DateTime'對象 – 2014-04-03 18:57:53

回答

4

foreach ($this->CI->session->all_userdata() as $key => $val) 
{ 
    if (is_array($val)) 
    { 
     $val = print_r($val, TRUE); 
    } 

    $output .= "<...>".htmlspecialchars($val)."<...>\n"; 
} 

只要你存儲在其出席會議的所有非數組非字符串的笨探查斷裂(從CI_Profiler::_compile_session_data()

這看起來像一個非常愚蠢的事情,因爲print_r()工作正常與對象 - 所以is_array($val) || is_object($val)會更合適。

+0

但是當我使用DB查詢返回的對象時它不會中斷。 '$ data = $ this-> db-> get();' - '$ userdata = $ data-> result();'then'$ this-> session-> set_userdata(array('current_user'=> $ userdata [0]));' – localhost 2012-03-26 19:52:07

+0

這是一個數組,而不是一個對象。 – ThiefMaster 2012-03-26 19:54:12

+0

這是一個stdClass對象,打印時顯示爲'$ userdata [0]',顯示爲stdClass。 – localhost 2012-03-26 20:36:53

相關問題