PHP类变量公开给出错误

时间:2013-11-20 18:28:38

标签: php class

我是php类的新手,现在我的代码出错了。我已经阅读了一些关于类和东西的PHP文档,但现在有些东西不能正常工作。

这是代码

public function change_salts($user_id) {
        global $mysqli_db;
        public $new_salt_one = "LOL"; //SaltyLogin::makesalt(60);
        private $new_salt_two = SaltyLogin::makesalt(60);
        mysqli_query($mysqli_db, "UPDATE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS)."` SET `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS_SALT_ONE)."`='".$new_salt_one."' WHERE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_USER_ID)."` = '".SaltyLogin::sanitize($user_id)."'");
        mysqli_query($mysqli_db, "UPDATE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS)."` SET `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS_SALT_TWO)."`='".$new_salt_two."' WHERE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_USER_ID)."` = '".SaltyLogin::sanitize($user_id)."'");
    }

现在这是我一直得到的错误。

Parse error: syntax error, unexpected 'public' (T_PUBLIC) in C:\xampp\htdocs\GitHub\Salty-login\functions.php on line 60

有关完整源代码,请查看github并自然地分支wip-2。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您不能在函数的一侧声明类变量。您必须将它们移出方法,或者仅将它们作为本地函数的一部分:

选项1

public $new_salt_one = "LOL"; 
private $new_salt_two = '';
public function change_salts($user_id) {
    global $mysqli_db;
    $this->new_salt_two = SaltyLogin::makesalt(60);
    mysqli_query($mysqli_db, "UPDATE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS)."` SET `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS_SALT_ONE)."`='".$this->new_salt_one."' WHERE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_USER_ID)."` = '".SaltyLogin::sanitize($user_id)."'");
    mysqli_query($mysqli_db, "UPDATE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS)."` SET `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_SALTS_SALT_TWO)."`='".$this->new_salt_two."' WHERE `".SaltyLogin::sanitize(SALTY_MYSQLI_TB_USER_ID)."` = '".SaltyLogin::sanitize($user_id)."'");
}

选项2

$new_salt_one = "LOL"; 
$new_salt_two = SaltyLogin::makesalt(60);