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


PHP Class assigning properties in 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()方法,也不起作用。我还尝试分配字符串文字作为变量,并通过引用传递它们。不。我哪里做错了?

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