I have a class with a private member "description" but that proposes a setter :
class Foo {
private $description;
public function setDescription($description) {
$this->description = $description;
}
}
I have the name of the member in a variable. I would like to access the field dynamically. If the field was simply public I could do :
$bar = "description";
$f = new Foo();
$f->$bar = "asdf";
but I don't know how to do in the case I have only a setter.
The first is "take what's in the 12th element of the $donkeys array and use that as a variable name." Write this as: ${$donkeys[12]}. The second is, "use what's in the scalar $donkeys as an array name and look in the 12th element of that array." Write this as: ${$donkeys}[12].
Getters and Setters play an important role in retrieving and updating the value of a variable outside the encapsulating class. A setter updates the value of a variable, while a getter reads the value of a variable.
In this article, we learn the best way to create getter and setter strategies in PHP. Getter and setter strategies are utilized when we need to restrict the direct access to the variables by end-users. Getters and setters are methods used to define or retrieve the values of variables, normally private ones.
<?php
$bar = "description";
$f = new Foo();
$func="set"+ucwords($bar);
$f->$func("asdf");
?>
Try this:
$bar = 'description';
$f = new Foo();
$f->{'set'.ucwords($bar)}('test');
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