При назначении типа casted array для сессии codeigniter я получаю эту ошибку:
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));
Профилировщик CodeIgniter прерывается, как только вы храните любые не-массивные не-строки в своем сеансе:
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)
is_array($val) || is_object($val)
будет более уместным.