Nome della proprietà da un altro oggetto in OOP in PHP
Il nome della proprietà può essere anche una proprietà di un altro
oggetto. Supponiamo di avere la seguente classe User:
<?php
class User
{
public $name;
public $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
}
?>
Creiamo un oggetto di questa classe:
<?php
$user = new User('john', 'smit');
?>
Supponiamo inoltre di avere la classe
Prop, che nella proprietà
value conterrà il nome
della proprietà:
<?php
class Prop
{
public $value;
public function __construct($value)
{
$this->value = $value;
}
}
?>
Creiamo un oggetto di questa classe:
<?php
$prop = new Prop('name');
?>
Ora utilizzando questo oggetto visualizziamo il nome dell'utente:
<?php
echo $user->{$prop->value}; // visualizzerà 'john'
?>
Data la seguente classe:
<?php
class Employee
{
public $name;
public $salary;
public $position;
public function __construct($name, $salary, $position)
{
$this->name = $name;
$this->salary = $salary;
$this->position = $position;
}
}
?>
Data anche questa classe:
<?php
class Data
{
public $prop1 = 'name';
public $prop2 = 'salary';
public $prop3 = 'position';
}
?>
Visualizza le proprietà dell'oggetto Employee
tramite l'oggetto Data.