未定义的变量:参数


Undefined variable: params

好的,我正在创建一个网站,在网站上我有一点"创建用户"帐户类型,我已将其放在索引上.php并分配了所有值和内容,以便管理员可以在登录时创建帐户...

无论如何,所以,我收到此错误:

注意:未定义的变量:参数 C:''xampp''htdocs''staff_inc''core.inc.php 在第 62 行

注意:未定义的变量:参数 C:''xampp''htdocs''staff_inc''core.inc.php 在第 63 行

注意:未定义的变量:参数 C:''xampp''htdocs''staff_inc''core.inc.php 在第 62 行

注意:未定义的变量:参数 C:''xampp''htdocs''staff_inc''core.inc.php 在第 63 行

在那个文件上,我有第 62 行和第 63 行

$salt1  = md5( $params['core']['salt1'] );
$salt2  = md5( $params['core']['salt2'] );

我不确定如何解决它?我该函数的完整代码是

public function encrypt( $string ) {        
    global $vars;
    //let's md5 that salt and the string.
    $salt1  = md5( $params['core']['salt1'] );
    $salt2  = md5( $params['core']['salt2'] );
    $string = md5( $string );
    //stick them together.
    $string = $salt1 . $salt1 . $salt2 . $string . $salt2 . $salt1;
    //sha1 then md5 them again.
    $string = sha1( $string );
    $string = md5( $string );
    return $string; 
}

注意很清楚:你没有在函数中定义$params

解决方案 1:

如果要将$params作为函数的参数传递,则需要将参数添加为:

public function encrypt( $string, $params ) {
....

解决方案 2:

如果$params是全局变量,则需要定义为:

public function encrypt( $string ) {
    global $vars, $params; // defined here
    // your remaining stuff    
}

解决方案 3:

正如我在评论中问的那样,如果$params等于 $vars ,因为您在函数中没有使用$vars,因此您可以使用:

public function encrypt( $string ) {
    global $vars;
    $salt1  = md5( $vars['core']['salt1'] );
    $salt2  = md5( $vars['core']['salt2'] );
    $string = md5( $string );
    // your remaining stuff    
}

旁注:

我不认为,有没有第四种选择。

似乎$params应该是全局变量:

public function encrypt( $string ) {
     global $vars; /* you don't use this, btw. */
     global $params;
     /* other code goes here */
}