PHP类在构造函数中分配属性

时间:2014-06-30 17:38:49

标签: php class object login constructor

<?php 
$login1 = new Login("cam", "1234"); echo "<br>";
echo $login1->authenticate($login1->name, $login1->this->password);

class Login{
     public $name;
     public $password;

    function Login($u, $w){
        $this->name = $u;
        $this->$password = $w;
    }

    function authenticate($name, $password){
        $lookupusername = "cam"; 
        $lookuppassword = "1234";
        if($name == $lookupusername && $password == $lookuppassword){
            return "Login Success";
            echo "Login Success";
        }   else {
                return "Login Fail";
                echo "Login Fail";
            }
    }
}
?>

我是PHP的新手。我想知道为什么我的登录类中的构造函数没有将字符串文字设置为类的名称和密码属性。我尝试了一个set()方法,但也没有用。我还尝试将字符串文字指定为变量并通过引用传递它们。不。我哪里错了?

1 个答案:

答案 0 :(得分:2)

PHP不会像Java那样构建构造函数(这是您的示例所基于的)。您将需要使用PHP的__construct方法,如下所示:

public function __construct($u, $w) {
    $this->name = $u;
    $this->password = $w;
}

此外,您访问name属性的方式是正确的,但password不正确。使用$this->password代替$this->$password$login1->password代替$login1->this->password