Bagaimana cara mengakses anggota kelas sebagai indeks array di PHP?

0
(0)

Meningkatkan Artikel

Simpan Artikel

Seperti Artikel

Meningkatkan Artikel

Simpan Artikel

Dalam bahasa pemrograman berorientasi objek seperti C++, Java, PHP, dll, anggota kelas dapat diakses dengan “.” atau “->” operator bersama dengan objek untuk anggota non-statis dan nama kelas untuk anggota statis sesuai bahasa.

Untuk mengakses anggota kelas sebagai indeks array di PHP, file get_object_vars() metode dapat digunakan.

Itu get_object_vars() fungsi digunakan untuk mendapatkan properti dari objek yang diberikan. Ketika sebuah objek dibuat, ia memiliki beberapa properti. Array asosiatif properti dari objek yang disebutkan dikembalikan oleh fungsi. Tapi jika tidak ada properti objek, maka mengembalikan NULL. Mendapatkan properti non-statis yang dapat diakses dari objek yang diberikan menurut ruang lingkup.

Catatan: Itu get_object_vars() juga mengembalikan nilai objek bersarang dalam larik.

Sintaksis:

array get_object_vars(object $object)

Parameter:

  • $objek: Contoh objek.

Nilai pengembalian:

  • Mengembalikan array asosiatif dari properti non-statis yang dapat diakses objek yang ditentukan.

Contoh 1: Kode ini menunjukkan kelas sederhana dengan anggota statis dan non-statis.

PHP

<?php

 

class Geeks {

    private $privateMember;

    public $publicMemberWithDefaultValue = 1;

    public $publicMemberWithNonDefaultValue;

    static $staticMember;

       

    public function dumpAllMembers() {

        var_dump(get_object_vars($this));

    }

}

 

$testObj = new Geeks;

 

print_r("n Dump of object:n");

var_dump(($testObj));

 

print_r("n Dump array from get_object_vars()"

    . "with object:n");

var_dump(get_object_vars($testObj));

 

print_r("n Dump array from get_object_vars()"

    . " from class itself:n");

$testObj->dumpAllMembers();

 

?>

Keluaran

 Dump of object:
object(Geeks)#1 (3) {
  ["privateMember":"Geeks":private]=>
  NULL
  ["publicMemberWithDefaultValue"]=>
  int(1)
  ["publicMemberWithNonDefaultValue"]=>
  NULL
}

 Dump array from get_object_vars() with object:
array(2) {
  ["publicMemberWithDefaultValue"]=>
  int(1)
  ["publicMemberWithNonDefaultValue"]=>
  NULL
}

 Dump array from get_object_vars() from class itself:
array(3) {
  ["privateMember"]=>
  NULL
  ["publicMemberWithDefaultValue"]=>
  int(1)
  ["publicMemberWithNonDefaultValue"]=>
  NULL
}

Contoh 2: Kode ini menunjukkan kelas bersarang yang menunjukkan pewarisan.

PHP

<?php

 

Class Geeks {

    private $geeksPrivateMember;

    public $geeksPublicMember;

}

 

class AnotherGeeks {

    private $privateMember;

    public $publicMemberWithDefaultValue = 1;

    public $publicMemberWithNonDefaultValue;

    public $anotherClass;

      

    public function dumpAllMembers() {

        var_dump(get_object_vars($this));

    }

}

 

$testObj = new AnotherGeeks;

 

$nestedObj = new Geeks;

$testObj->anotherClass = $nestedObj;

 

print_r("n Dump of object:n");

var_dump(($testObj));

 

print_r("n Dump array from get_object_vars()"

    . "with object:n");

var_dump(get_object_vars($testObj));

 

print_r("n Dump array from get_object_vars()"

    . "from class itself:n");

$testObj->dumpAllMembers();

 

?>

Keluaran

 Dump of object:
object(AnotherGeeks)#1 (4) {
  ["privateMember":"AnotherGeeks":private]=>
  NULL
  ["publicMemberWithDefaultValue"]=>
  int(1)
  ["publicMemberWithNonDefaultValue"]=>
  NULL
  ["anotherClass"]=>
  object(Geeks)#2 (2) {
    ["geeksPrivateMember":"Geeks":private]=>
    NULL
    ["geeksPublicMember"]=>
    NULL
  }
}

 Dump array from get_object_vars() with object:
array(3) {
  ["publicMemberWithDefaultValue"]=>
  int(1)
  ["publicMemberWithNonDefaultValue"]=>
  NULL
  ["anotherClass"]=>
  object(Geeks)#2 (2) {
    ["geeksPrivateMember":"Geeks":private]=>
    NULL
    ["geeksPublicMember"]=>
    NULL
  }
}

 Dump array from get_object_vars() from class itself:
array(4) {
  ["privateMember"]=>
  NULL
  ["publicMemberWithDefaultValue"]=>
  int(1)
  ["publicMemberWithNonDefaultValue"]=>
  NULL
  ["anotherClass"]=>
  object(Geeks)#2 (2) {
    ["geeksPrivateMember":"Geeks":private]=>
    NULL
    ["geeksPublicMember"]=>
    NULL
  }
}

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.