如何将此语法转换为普通的php if else

Kan*_*iya 0 php codeigniter

我正在使用codeigniter表单验证.要显示表单错误,它会使用它

 $this->data['message'] = (validation_errors() ?
     validation_errors() : 
     ($this->auth_lib->errors() ? 
         $this->auth_lib->errors() : 
         $this->session->flashdata('message')))
Run Code Online (Sandbox Code Playgroud)

我不明白这种语法.我认为这是一个if else声明.这很难理解.

任何人都可以将此转换为正常的if else声明吗?

因为现在我要更改错误消息格式:

$this->message->set_error($msg=array('Test 1','Test 2'));
$message=$this->message->get_message();
$this->data['message']=$message;  
Run Code Online (Sandbox Code Playgroud)

任何人,请简化语法.谢谢.

eva*_*van 6

一个 ?b:c == if(a){b} else {c}

if (validation_errors())
{
    $this->data['message'] = validation_errors();
}
else if ($this->auth_lib->errors())
{
    $this->data['message'] = $this->auth_lib->errors();
}
else
{
    $this->data['message'] = $this->session->flashdata('message');
}
Run Code Online (Sandbox Code Playgroud)