Tên thuộc tính từ đối tượng khác trong OOP PHP
Tên thuộc tính thậm chí có thể là một thuộc tính của một đối tượng khác. Giả sử chúng ta có lớp User sau:
<?php
class User
{
public $name;
public $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
}
?>
Hãy tạo một đối tượng của lớp này:
<?php
$user = new User('john', 'smit');
?>
Giả sử chúng ta cũng có lớp
Prop, trong thuộc tính
value sẽ chứa tên của
thuộc tính:
<?php
class Prop
{
public $value;
public function __construct($value)
{
$this->value = $value;
}
}
?>
Hãy tạo một đối tượng của lớp này:
<?php
$prop = new Prop('name');
?>
Bây giờ, sử dụng đối tượng này để in tên của user:
<?php
echo $user->{$prop->value}; // sẽ in ra 'john'
?>
Cho lớp sau:
<?php
class Employee
{
public $name;
public $salary;
public $position;
public function __construct($name, $salary, $position)
{
$this->name = $name;
$this->salary = $salary;
$this->position = $position;
}
}
?>
Cũng cho lớp như sau:
<?php
class Data
{
public $prop1 = 'name';
public $prop2 = 'salary';
public $prop3 = 'position';
}
?>
Hãy in các thuộc tính của đối tượng Employee
thông qua đối tượng Data.