Nom de propriété d'un autre objet en POO en PHP
Le nom de la propriété peut même être une propriété d'un autre
objet. Supposons que nous ayons la classe User suivante :
<?php
class User
{
public $name;
public $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
}
?>
Créeons un objet de cette classe :
<?php
$user = new User('john', 'smit');
?>
Supposons également que nous ayons la classe
Prop, qui dans sa propriété
value contiendra le nom de la
propriété :
<?php
class Prop
{
public $value;
public function __construct($value)
{
$this->value = $value;
}
}
?>
Créeons un objet de cette classe :
<?php
$prop = new Prop('name');
?>
Maintenant, en utilisant cet objet, affichons le nom de l'utilisateur :
<?php
echo $user->{$prop->value}; // affichera 'john'
?>
Voici la classe suivante :
<?php
class Employee
{
public $name;
public $salary;
public $position;
public function __construct($name, $salary, $position)
{
$this->name = $name;
$this->salary = $salary;
$this->position = $position;
}
}
?>
Voici également une telle classe :
<?php
class Data
{
public $prop1 = 'name';
public $prop2 = 'salary';
public $prop3 = 'position';
}
?>
Affichez les propriétés de l'objet Employee
via l'objet Data.