• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 441
  • Last Modified:

php: Select object property with a dynamic name ($obj->dynamicNameHere)?

I should know this, but here I am. I'm trying to select an object property with a non-static name like this:

<?php
$properties = array('property1','property2','property3');
foreach($properties as $property) {
  print $theObject->[[[$property]]]
}
?>

Open in new window


Any thoughts on how to do that? I know it's probably super simple.

Thanks!!!

Chris
0
Ultrus
Asked:
Ultrus
  • 2
  • 2
1 Solution
 
acbxyzCommented:
Hello Chris,

since properties are called without a dollar sign behind the arrow, you can simply use a dollar for a dynamic name. Here an example working for me:
// Defining test class
class test{
    public $variable;
}   
// Creating an instance of it
$testobj = new test();
// preset a value
$testobj->variable = 'Wert 1';
// name the variable, can be a loop or something
$varname = 'variable';
// assigning a new value to the named variable above
$testobj->$varname = 'Wert 2';
// let's see if it works
echo $testobj->variable;

Open in new window

0
 
UltrusAuthor Commented:
acbxyz,
I figured it out. If you respond with "Yes, that looks great!", I'll give your response all the points. ;)

<?php
$properties = array('property1','property2','property3');
foreach($properties as $property) {
  print $theObject->{$property}
}
?>

Open in new window

0
 
acbxyzCommented:
Yes, that looks great! ;-)

If $property is a simple string variable as in this example, you even don't need the curly braces, but you can.
0
 
UltrusAuthor Commented:
Thanks! :D
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now