1

I've got object and I need list of it's keys.

for now I doing that in foreach

foreach($obj as $key => $attribute){
  var_dump($key);
}

Is there some PHP built in function for getting object keys like array_keys for arrays?

trace

object(Solarium\QueryType\Select\Result\Document)#1383 (1) { ["fields":protected]=> array(31) { ["pdf_url"]=> string(51) "xxxxxxxxxxxx" ["title"]=> string(150) ......

Stevan Tosic
  • 6,561
  • 10
  • 55
  • 110

2 Answers2

4
class A 
{
    private $a = 1;
    protected $b = 2;
    public $c = 3;
}

$object = new A();
$fields = get_object_vars($object);

But by this method, you can only get public fields from your object, i.e

print_r($fields);

Will output

Array ( [c] => 3 ) 
Svitavsky
  • 291
  • 1
  • 15
  • I tried get_object_vars but it return empty array. I now see that I wrote wrong question because it was array in object, and there is no public property in obj. – Stevan Tosic Sep 22 '16 at 07:39
0

Problem is because it was

array in object.

I solve problem with this

array_keys($obj->getFields())
Stevan Tosic
  • 6,561
  • 10
  • 55
  • 110