I'm trying to implement some automated getter and setter for php objects.
My target is to automatically have for each properties the methods getProperty()
and setProperty(value)
, that way if the method is not implemented for a property the script will simply set or get the value.
An example, to make myself clear:
class Foo {
public $Bar;
}
$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "bar"
or
class Foo {
public $Bar;
public function setBar($bar) { $Bar = $bar; }
public function getBar($bar) { return 'the value is: ' . $bar; }
}
$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "the value is: bar"
Any idea/hints on how to accomplish this?
If you want to simulate the getXy
and setXy
functions for arbitrary properties, then use the magic __call
wrapper:
function __call($method, $params) {
$var = lcfirst(substr($method, 3));
if (strncasecmp($method, "get", 3) === 0) {
return $this->$var;
}
if (strncasecmp($method, "set", 3) === 0) {
$this->$var = $params[0];
}
}
This would be a good opportunity to do something useful for once, by adding a typemap or anything. Otherwise eschewing getters and setters alltogether might be advisable.
read the magic functions of php
and your need you can use __get and __set
functions
read this
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With