那些$variable->$OOP php中的变量是什么?
我正在学习一个教程,在定义用户类时遇到了以下代码:那些$variable->$OOP php中的变量是什么?,php,oop,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){
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,我真的很困惑这段代码到底在写什么
非常感谢。非常基本的问题:它将值
$value
分配给对象$object
的属性$attribute
换句话说,它是将变量
$value
的值复制到对象的属性$object
所有这一切都是在内部创建一个新的实例,它是在为递归或其他功能创建一个新的自身实例
所谓:
$object->$attribute
基本上,从我所看到的。将创建一个新实例,然后根据$attribute的内容返回一个值或调用一个方法。这是PHP类属性的赋值语句。让我们用一个不那么模棱两可的例子。我们将创建一个包含名字和姓氏的small person类
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";
$personsName = $myPerson->firstName;
或者,如果要将值myPerson对象的firstName字段指定给其他变量,可以执行以下操作:
//Instantiate a new person
$myPerson = new Person();
//Assign values to the person object
$myPerson->firstName = "John";
$myPerson->lastName = "Smith";
$personsName = $myPerson->firstName;
它是一个对象的寻址属性,
$object
,它的名称存储在$attribute
中。不得不说,我真的很想知道在这里使用\u set()
有什么不对。@raina77现在,OP似乎在学习教程,这可能是用贬低的代码编写的,或者是由认为自己在该领域很有知识的人编写的,所以开始编写非优化教程。非常感谢,您的解释让我非常清楚。你的答案正是我在教程中寻找的答案。