PHP通过变量名称动态访问对象值

时间:2016-01-14 09:28:01

标签: php variables object

我有这个小片段:

$action = $_GET['action'];
// some other code

// works
$properties = $client->__soapCall($action, array(
    array(
        'Page' => $x
    )
));

// try to get access to values by var $action
$obj = $properties->$action->item;

这给了我一个错误。我的目的是通过获取不同的操作,仅对脚本执行一次多次操作。

...但我不知道如何解决这个问题,而且我没有找到任何有用的帖子或文章。

var_dump($properties)

object(stdClass)#84 (4) {
    ["PropertyGroups"]=>
        object(stdClass)#85 (1) {
            ["item"]=>
                array(73) {
                    [0]=>
                        object(stdClass)#86 (7) {
                            ["PropertyGroupID"]=>int(1)
                        }
                }
          }
  }

1 个答案:

答案 0 :(得分:1)

脚本和这一行

$obj = $properties->$action->item;

绝对没问题。但是,正如你在评论中指出的那样,

  

如果action = GetPropertyGroups,Undefined属性:   stdClass::$GetPropertyGroups

PropertyGroups中有$properties个属性,不是GetPropertyGroups

您应该检查您正在寻找的财产是否存在:

property_exists($properties, $action)