<?php
trait HasGettersAndSetters {
function __get($name) {
$method = "get_$name";
return $this->$method();
}
function __set($name, $value) {
$method = "set_$name";
return $this->$method($value);
}
}
class Order {
use HasGettersAndSetters;
private function get_customer() {
return 42;
}
}
$order = new Order();
echo $order->customer;
PD9waHAKCnRyYWl0IEhhc0dldHRlcnNBbmRTZXR0ZXJzIHsKCWZ1bmN0aW9uIF9fZ2V0KCRuYW1lKSB7CgkJJG1ldGhvZCA9ICJnZXRfJG5hbWUiOwoJCXJldHVybiAkdGhpcy0+JG1ldGhvZCgpOwoJfQoKCWZ1bmN0aW9uIF9fc2V0KCRuYW1lLCAkdmFsdWUpIHsKCQkkbWV0aG9kID0gInNldF8kbmFtZSI7CgkJcmV0dXJuICR0aGlzLT4kbWV0aG9kKCR2YWx1ZSk7Cgl9Cn0KCmNsYXNzIE9yZGVyIHsKCXVzZSBIYXNHZXR0ZXJzQW5kU2V0dGVyczsKCglwcml2YXRlIGZ1bmN0aW9uIGdldF9jdXN0b21lcigpIHsKCQlyZXR1cm4gNDI7Cgl9Cn0KCiRvcmRlciA9IG5ldyBPcmRlcigpOwplY2hvICRvcmRlci0+Y3VzdG9tZXI7Cg==