4 ms·
For what it's worth, I used variable variables when making a DB class for a project I was working on last year. It isn't something you can easily debug and it
by jbm 16y ago
For what it's worth, I used variable variables when making a DB class for a project I was working on last year.
It isn't something you can easily debug and it is complicated. That said, it isn't the gates to hell that it is represented as. It's a tool, and it can make code cleaner if you want it to.
function __tostring(){
$items = ['title','header','comment']
foreach($items as $item){
echo $this->$item;
}
}
Make that list of class variables much longer and you start to see the benefits in certain cases.
There are times when I do miss variable variables.
- bad_user 16y agoPython has it in a more object-oriented way ... def print_string(self): items = ['title', 'header', 'comment'] for item in items: print getattr(self, item) Where "getattr" is just a pretty protocol for calling ... self.__dict__[item] This extends to whatever you want, including members of namespaces (like declared classes, functions, other namespaces, etc...)
- hagy 16y agoThere is actually a little more to getattr in that __dict__ just has attributes local to that instance where as getattr (also instance.attribute syntax) also accesses class attributes, non-bound methods, and properties. Additionally, these non-local attributes can also be inherited from parent classes.