dst8922
dst8922
2014-02-12 16:14
浏览 270
已采纳

解析错误:语法错误,意外T_FUNCTION,[重复]

This question already has an answer here:

what is wrong with this error i dont get it... it actualy works when i m connected to localhost but when i run it on a free domain i get this error: Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /home/a7812073/public_html/core/init.php on line 21 and i inserted the right info for the mysql server

<?php
session_start();

$GLOBALS ['config'] = array(
    'mysql' => array(
        'host' => '127.0.0.1',
        'username' => 'root',
        'password' => '',
        'db' => 'lr'
    ),
    'remember' => array(
        'cookie_name' => 'hash',
        'cookie_expiry' => 604800
    ),
    'session' => array(
        'session_name' => 'user',
        'token_name' => 'token'
    )
);

spl_autoload_register(function($class) {
    require_once 'classes/' . $class . '.php';

});

require_once 'functions/sanitize.php';
if(Cookie::exists(Config::get('remember/cookie_name')) && !Session::exists(Config::get('session/session_name'))) {
    $hash = Cookie::get(Config::get('remember/cookie_name'));
    $hashCheck = DB::getInstance()->get('users_session', array('hash', '=', $hash));
    if($hashCheck->count()) {
        $user = new User($hashCheck->first()->user_id);
        $user->login();
    }
}
?>
</div>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doutang3760
    doutang3760 2014-02-12 16:19
    已采纳

    The problem is that you are attempting to register an anonymous function using spl_autoload_register(), but as you told that you are using PHP5.2 on your web server.

    Unfortunately PHP < 5.3 does not support anonymous functions. You need to write a "regular" function:

    function my_autoload($class) {
        require_once 'classes/' . $class . '.php';
    }
    
    spl_autoload_register('my_autoload');
    

    This will work on PHP >= 5.3 as well.

    点赞 评论

相关推荐