将PHP属性名称检索为字符串

时间:2016-11-29 16:23:17

标签: php

我有一些JSON,如果我print "foo_1: {}".format(foo_1) 输出如下:

var_dump

我想找回租约'作为一个字符串。

我尝试过施展它:

var_dump( $oJSON->{$oQ->sQuestionName} );

object(stdClass)[14]
  public 'Lease' => boolean true

但它会返回(string)$oJSON->{$oQ->sQuestionName}

E_RECOVERABLE

以下作品,但我觉得必须有更好的方法吗?

E_RECOVERABLE_ERROR Error: Object of class stdClass could not be converted to string

N.B。由于兼容性问题,我无法使用以下内容

array_shift(array_values(array_keys(get_object_vars($oJSON->{$oQ->sQuestionName}))));

3 个答案:

答案 0 :(得分:1)

您可以先将所需对象转换为数组

   $array = (array) $oJSON->{$oQ->sQuestionName};

然后你可以拿出它的第一个元素的键

   echo key($array);  // Should say Lease

<强> Fiddle

答案 1 :(得分:1)

使用ReflectionClass::getProperties()获取对象属性的列表。

$reflect = new ReflectionClass($foo);
$props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED);

答案 2 :(得分:0)

  

您可以将true与第二个参数$str = '{"0":{"id":"123","name":"Title"}}'; var_dump(json_decode($str,true));

一起使用

例如:

-Djava.net.preferIPv4Stack=true

因此,您将拥有一个包含字符串对象的数组。