解析错误:语法错误,意外的'$ _POST'(T_VARIABLE)错误,我只是不明白为什么?

时间:2014-02-17 23:45:58

标签: php class syntax-error

我试图在php中编写这个简单的类,如下所示:

<?php
session_start();
require 'db_con.php';
class logg{

    private $db;
    private $username = $_POST['usr_name']; 
    private $password = $_POST['usr_pass'];
    private $query = "SELECT * FROM user WHERE nick='$username'";

function __construct(){
    $this->db = new DB();
}

function loggIn(){
    try{
        $res = $this->db->fetch($query)
        foreach($res as $row) {
            $dbusername = $row['nick'];
            $dbpassword = $row['pass']; }
        if ($username == $dbusername && $password == $dbpassword) {
            $_SESSION['username'] = $dbusername;
            header('Location: index.php');
        } catch (Exception $e){
        echo'Wrong login information!'
        }
    }
}   

function loggOut(){
    session_destroy();
}
}

?>

但我一直收到以下错误: 解析错误:语法错误,意外的'$ _POST'(T_VARIABLE),我只是想弄清楚原因!即使我删除了这些行:

    private $username = $_POST['usr_name']; 
    private $password = $_POST['usr_pass'];

我反而得到以下错误:

    ( ! ) Parse error: syntax error, unexpected '"' in 

我确定错误是一个非常简单的错误,但我似乎无法弄明白......! 任何帮助appriciated!

2 个答案:

答案 0 :(得分:2)

你在这里错过了一个分号:

echo'Wrong login information!' // <-- HERE

答案 1 :(得分:2)

除了echo行的语法错误之外,导致此特定错误的实际问题是您只能使用常量

由于常量永远不会以$开头,因此您的初始化会出现语法错误。

您必须分配给班级构造函数中的成员,而不是,就像您对$db所做的那样。