OOP php中那些$ variable-> $变量的作用是什么?

时间:2014-07-22 16:20:23

标签: php oop

我正在学习教程并在定义用户类时遇到以下代码:

class User {

public $id;
public $username;
public $password;
public $first_name;
public $last_name;

public static function instantiate($record) {

    $object = new self;

    foreach ($record as $attribute => $value){
        if ($object->has_attribute($attribute)){
            $object->$attribute = $value;
        }
    }

    return $object;

}

private function has_attribute($attribute) {

    $object_vars = get_object_vars($this);
    return array_key_exists($attribute, $object_vars);

    }
}

我的问题是:“$ object-> $ attribute = $ value;”做到了吗?

我刚开始使用OOP php而且我真的很担心这些代码正在崩溃。

非常感谢。

3 个答案:

答案 0 :(得分:1)

非常基本的问题:它将值$value分配给对象$attribute的属性$object

换句话说,它是将变量$value的值复制到对象$object的属性。

答案 1 :(得分:0)

所有这一切都是在内部创建一个新的实例,为一种递归形式或其他功能创建一个新的自我实例,

所以打电话:

$object->$attribute
从我能看到的,基本上是基本的。将创建一个新实例,然后根据$属性的内容返回一个值或调用一个方法

答案 2 :(得分:0)

它是PHP类属性的赋值语句。让我们使用一个不那么模糊的例子。我们将创建一个包含名字和姓氏的小人物类。

class Person
{
    //Class attributes
    public $fisrtName;
    public $lastName;
}

使用上面的示例,如果要设置这些属性,可以执行以下操作:

//Instantiate a new person
$myPerson = new Person();

//Assign values to the person object
$myPerson->firstName = "John";
$myPerson->lastName = "Smith";

或者,如果您想将值myPerson对象的firstName字段分配给另一个变量,则可以执行以下操作:

$personsName = $myPerson->firstName;