解析错误 - CodeIgniter - 意外的T_else

时间:2014-01-15 08:51:46

标签: php codeigniter if-statement

我为网络制作了一个控制器,如果用户来自移动设备,这个控制器可以在桌面和移动用户之间工作,所以它显示另一个视图,如果用户来自台式计算机,那么它显示了另一个视图,我做了一个代码,但是当我在网站上传了一个代码并尝试运行它显示错误此错误:

  

解析错误:语法错误,第17行意外的T_ELSE

这是我的代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {
    public function index()
    {
        $this->load->library('user_agent');
        $this->load->helper('url');

        if ($this->input->get("lang") =="en")
        {
            if ($this->agent->is_mobile())
            {
                $this->load->view('m_english_signup');
            }
        }
        else
        {
            $this->load->view('d_english_signup');
        }
        else 
            $this->agent->is_mobile()
            {
            $this->load->view('m_arabic_signup');
            }
        else {
            $this->load->view('d_arabic_signup');
        }
    }
}

8 个答案:

答案 0 :(得分:2)

试试这个

class Welcome extends CI_Controller {
    public function index()
    {
        $this->load->library('user_agent');
        $this->load->helper('url');

        if ($this->input->get("lang") =="en"){
            if ($this->agent->is_mobile()) {
              $this->load->view('m_english_signup');
            } else {
                $this->load->view('d_english_signup');
            } 
        } else if($this->agent->is_mobile()) {
            $this->load->view('m_arabic_signup');
        } else {
            $this->load->view('d_arabic_signup');
        }

    }
}

答案 1 :(得分:1)

您在放置移动检查代码时再次犯了错误。试试这个:

<?php

if (!defined('BASEPATH'))
exit('No direct script access allowed');

class Welcome extends CI_Controller {

public function index() {
    $this->load->library('user_agent');
    $this->load->helper('url');

    if ($this->input->get("lang") == "en") {
        if ($this->agent->is_mobile()) {
            $this->load->view('m_english_signup');
        } else {
            $this->load->view('d_english_signup');
        }
    } else {
        if ($this->agent->is_mobile()) {
            $this->load->view('m_arabic_signup');
        } else {
            $this->load->view('d_arabic_signup');
        }
    }
}

}

答案 2 :(得分:1)

试试这段代码。它有点干净,有缩进功能,可以更容易地看到发生了什么。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->library('user_agent');
        $this->load->helper('url');

        if ($this->agent->is_mobile()) {

            if ($this->input->get("lang") =="en"){
                $this->load->view('m_english_signup');
            }else{
                $this->load->view('m_arabic_signup');
            }

        }else {

            if ($this->input->get("lang") =="en"){
                $this->load->view('d_english_signup');
            }else{
                $this->load->view('d_arabic_signup');
            }
        }
    }
}

答案 3 :(得分:1)

试试这个    

class Welcome extends CI_Controller {
public function index()
{
    $this->load->library('user_agent');
    $this->load->helper('url');

    if ($this->input->get("lang") =="en"){
        if ($this->agent->is_mobile()) {
            $this->load->view('m_english_signup');
        }
        else {
            $this->load->view('d_english_signup');
        }
    }

else if($this->agent->is_mobile())
     {
        $this->load->view('m_arabic_signup');
}
else {
    $this->load->view('d_arabic_signup');
}
}
}

答案 4 :(得分:1)

如果if else中有单行则没有{}

like this 

if(condition)
   $this->agent->is_mobile();  //statement
else
   $this->agent->is_mobile();   //statement

,否则

if(condition)
{
   $this->agent->is_mobile();  //statement
}
else
{
   $this->agent->is_mobile();   //statement
 }

答案 5 :(得分:1)

你的if-else语句完全搞砸了:

class Welcome extends CI_Controller {
    public function index(){
        $this->load->library('user_agent');
        $this->load->helper('url');

        if ($this->input->get("lang") =="en"){
            if ($this->agent->is_mobile()) {
                  $this->load->view('m_english_signup');
            }else {
                  $this->load->view('d_english_signup');
            }
        }else{
            if($this->agent->is_mobile()) {
                  $this->load->view('m_arabic_signup');
            }else{
                  $this->load->view('d_arabic_signup');
            }
        }
    }
}

答案 6 :(得分:1)

由于意外的其他情况导致的错误或未正确关闭。还有一个未正确关闭。此代码中if else的使用不正确且令人困惑。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {
    public function index()
    {
        $this->load->library('user_agent');
        $this->load->helper('url');

        if ($this->agent->is_mobile())
        {

            if ($this->input->get("lang") =="en"){
                $this->load->view('m_english_signup');
            }else{
                $this->load->view('m_arabic_signup');
            }

        }
        else
        {

            if ($this->input->get("lang") =="en"){
                $this->load->view('d_english_signup');
            }else{
                $this->load->view('d_arabic_signup');
            }
        }
    }
}

请注意,我无法确定您想要的条件。我只是清楚发生了错误。

答案 7 :(得分:0)

你不能拥有if-else-else-else逻辑序列。 有效期为

if-elseif-elseif-...-else

if-elseif-elseif

if-else

除此之外,你的第二个'其他'没有用括号括起来。