我正在创建一个codeigniter教程电影的core/MY_Controller.php
文件,我的代码是:
<?php
/**
* MY_Controller extends CI_Controller
*/
class MY_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
public $username;
$slogin = $this->input->cookie('userblog');
if (!empty($slogin))
{
$this->load->library('encrypt');
$login = $this->encrypt->decode($slogin,ENCRYPT_KEY) ;
echo 'login is : ' .$login ;
$login_info = explode('_',$login) ;
$this->username = $login_info[0] ;
$is_login = $login_info[1];
if ( $is_login !='islogin')
{
redirrect('login');
}
}
$login = $this->session->userdata('login') ;
if(!empty($login))
{
if ($login != true)
{
redirect('login');
}
}
else
{
redirect('login');
}
}
}
?>
这是教师编写的确切代码,但是当我想要运行时,页面会告诉我这个错误public $username;
:
Parse error: syntax error, unexpected 'public' (T_PUBLIC) in D:\Software\wamp\www\ci\admin\application\core\MY_Controller.php on line 11
我多次检查了我的代码并且我将它与教师代码进行了比较,但我们之间没有任何区别,但是jusy他的代码运行良好
答案 0 :(得分:3)
发生此错误是因为您在方法中声明了$ username。你不应该。 改为使用它,它在方法之外和类内部声明它。
<?php
/**
* MY_Controller extends CI_Controller
*/
class MY_Controller extends CI_Controller
{
public $username;
function __construct()
{
parent::__construct();
$slogin = $this->input->cookie('userblog');
if (!empty($slogin))
{
$this->load->library('encrypt');
$login = $this->encrypt->decode($slogin,ENCRYPT_KEY) ;
echo 'login is : ' .$login ;
$login_info = explode('_',$login) ;
$this->username = $login_info[0] ;
$is_login = $login_info[1];
if ( $is_login !='islogin')
{
redirrect('login');
}
}
$login = $this->session->userdata('login') ;
if(!empty($login))
{
if ($login != true)
{
redirect('login');
}
}
else
{
redirect('login');
}
}
}
?>