На первый взгляд, этот фрагмент выглядит нормально.
// my_controller.php
$data['errors'] = (object)$this->session->userdata('errors_registration');
$this->load->view('registration/my_view',$data);
// print_r($data['errors'])
// stdClass Object
// (
// [domain_err] => 0
// [wbholder_err] => 0
// [methodpayment_err] => 0
// [createaccount_err] => 2
// [gtc_err] => 0
// )
// my_view.php
if($errors->domain_err == 1) echo "TRUE"; else echo "FALSE"; // FALSE
А когда $data['errors']
пусто,
// print_r($data['errors'])
// stdClass Object
// (
// [scalar] =>
// )
// my_view.php
if($errors->domain_err == 1) echo "TRUE"; else echo "FALSE";
Я получаю,
Обнаружена ошибка PHP Серьезность: Сообщение с уведомлением: неопределенное свойство: stdClass :: $ domain_err
Чтобы обратиться к уведомлению, я добавил isset()
, делая моисниппет теперь до if(isset($errors->domain_err) == 1)
, однако, так как это изменение, условие, кажется, всегда установлено в true, таким образом выводя TRUE .Есть ли другой способ преодолеть уведомление при сохранении ожидаемого условного вывода?