Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在构造函数中分配属性的PHP类_Php_Class_Object_Login_Constructor - Fatal编程技术网

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

在构造函数中分配属性的PHP类,php,class,object,login,constructor,Php,Class,Object,Login,Constructor,我是PHP新手。我想知道为什么我的登录类中的构造函数没有将字符串文本设置为类的名称和密码属性。我尝试了一个set()方法,但也不起作用。我还尝试将字符串文本指定为变量,并通过引用传递它们。不。我哪里做错了 PHP构建构造函数的方式与Java不同(您的示例似乎就是基于此)。您需要使用PHP的方法,如下所示: <?php $login1 = new Login("cam", "1234"); echo "<br>"; echo $login1->authenticate($

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

PHP构建构造函数的方式与Java不同(您的示例似乎就是基于此)。您需要使用PHP的方法,如下所示:

<?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";
            }
    }
}
?>

此外,您访问
名称
属性的方式是正确的,但是
密码
是不正确的。使用
$this->password
而不是
$this->$password
,使用
$login1->password
而不是
$login1->this->password

这个
$this->$password
是错误的,从
$password
中删除
$login1->这个密码也是错误的,将其更改为
$login1->password
哦,看起来像是小的打字错误。谢谢。还有一件事:当我做一个构造函数时,默认的构造函数还能工作吗?如果是这样,我如何禁用没有参数的对象?@Cameronc56-它不能正常工作(你会收到警告);您可以改为使用默认参数(
函数uu构造($a=null,$b=null){
public function __construct($u, $w) {
    $this->name = $u;
    $this->password = $w;
}