在函数内部使用define

时间:2013-09-14 01:56:34

标签: php

我试图在函数内部定义一个常量,但是我一直遇到语法错误。如果我在函数和类之外的文件顶部定义它,它可以工作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
}

2 个答案:

答案 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');
 }