0

我正在尝试在函数内部定义一个常量,但我不断收到语法错误。如果我在函数和类之外的文件顶部定义它,它就可以工作define('SALT_LENGTH', 9);只要我把它放在类或函数中,我就会遇到语法错误,我也尝试过const SALT_LENGTH = 9;,但这是同一个问题。我一直在寻找答案,但我什么也没找到。

class userFunctions{

//Generate an encrypted password method
    public function generateHash($password, $salt = null)

{
    if ($salt === null) {
        $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
    } else {
        $salt = substr($salt, 0, SALT_LENGTH);
    }
        return $salt . sha1($salt . $password);
}
    //End of generate encrypted password method
}
4

2 回答 2

1

你必须使用'self'关键字。

像这样,

类用户函数{

const SALT_LENGTH = 5; // define constant 


public function generateHash($password, $salt = null)

{

    if ($salt === null) {
        $salt = substr(md5(uniqid(rand(), true)), 0, self::SALT_LENGTH);
    } else {
        $salt = substr($salt, 0, self::SALT_LENGTH);
    }
    return $salt . sha1($salt . $password);
}

}

于 2013-09-14T02:20:52.793 回答
0

请在您的班级中使用构造函数。更改您喜欢的 SALT_LENGTH 值。我选择了 50。下面是代码。

 function __construct() {
        define('SALT_LENGTH','500');
 }
于 2013-09-14T02:24:13.043 回答