意外的PHP分析错误

意外的PHP分析错误,php,Php,我意识到这个问题的答案可能是显而易见的,但我被难住了 我创建了一个使用Jeremy Kendall的密码验证器()的类,名为Hash。但是,当调用该类时,我得到: Parse error: syntax error, unexpected '}' in /home/james/Projects/REC/htdocs/classes/Hash.class.php on line 24. Hash.class.php中存在问题的代码是: private $validationCallback;

我意识到这个问题的答案可能是显而易见的,但我被难住了

我创建了一个使用Jeremy Kendall的密码验证器()的类,名为Hash。但是,当调用该类时,我得到:

Parse error: syntax error, unexpected '}' in /home/james/Projects/REC/htdocs/classes/Hash.class.php on line 24.
Hash.class.php中存在问题的代码是:

private $validationCallback;

public function __construct(){
    $this->validationCallback = function($credential, $passwordHash){
        if (has('md5', $credential) === $passwordHash) {
            return true;
        }
        return false;
    }
}
第24行是最后一个“}”。任何帮助都将不胜感激

谢谢。

结尾需要一个分号。试试这个:

private $validationCallback;

public function __construct(){
$this->validationCallback = function($credential, $passwordHash)
{
if (has('md5', $credential) === $passwordHash) {
    return true;
}
return false;

};
}
这应该是:

private $validationCallback;

public function __construct(){
    $this->validationCallback = function($credential, $passwordHash)
{
    if (has('md5', $credential) === $passwordHash) {
        return true;
    }
    return false;
}; // Missing semicolon needs to be here
}
请参阅PHP文档:

闭包也可用作变量的值;PHP会自动将这些表达式转换为闭包内部类的实例。将闭包赋值给变量使用与任何其他赋值相同的语法,包括尾随分号:


MD5?老天,他们在21世纪还用这个吗?