我试图在函数内部定义一个常量,但是我一直遇到语法错误。如果我在函数和类之外的文件顶部定义它,它可以工作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
}
答案 0 :(得分:1)
你必须使用'self'关键字。
像这样,
class userFunctions {
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);
}
}
答案 1 :(得分:0)
请在班上使用构造函数。更改您喜欢的任何值为SALT_LENGTH。我选择了50.下面是代码。
function __construct() {
define('SALT_LENGTH','500');
}