Как сделать переменную частной для черты?
Я хотел бы повторно использовать функциональность несколько раз в одном классе. Эта функциональность зависит от закрытой переменной:
trait Address {
private $address;
public function getAddress() {
return $this->address;
}
public function setAddress($address) {
$this->address = $address;
}
}
Единственный способ найтииспользовать черту дважды, является следующим:
class User {
use Address {
getAddress as getHomeAddress;
setAddress as setHomeAddress;
getAddress as getWorkAddress;
setAddress as setWorkAddress;
}
}
Проблема заключается в том, что, делая это, частная переменная$address
распределяется между различными методами, и код не будет работать должным образом:
$user = new User();
$user->setHomeAddress('21 Jump Street');
echo $user->getWorkAddress(); // 21 Jump Street
Есть ли решение по-настоящему использовать черту дважды, не разделяя ее частные переменные?