⊗ppOpAdPBR 23 of 107 menu

Pass by Reference Objek dalam OOP di PHP

Misalkan kita diberikan kelas User berikut:

<?php class User { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Misalkan kita membuat objek dari kelas ini:

<?php $user = new User('john', 30); ?>

Sekarang bayangkan situasi berikut: Anda ingin menetapkan nilai variabel $user ke variabel lain, misalnya $test.

Jika yang dibicarakan bukan objek, melainkan primitif, yaitu string, angka, array, dll, maka salinan nilai variabel $user akan masuk ke dalam variabel $test.

Ini berarti bahwa perubahan pada salah satu variabel selanjutnya tidak akan mengubah nilai variabel lainnya. Mari kita lihat contohnya:

<?php $user = 1; $test = $user; // variabel $test sekarang berisi 1 $test = 2; // variabel $test sekarang berisi 2, sedangkan $user masih 1 ?>

Halnya berbeda dengan objek - saat ditulis ke dalam variabel lain, objek tidak disalin, melainkan diteruskan secara referensi (by reference): ini berarti kedua variabel tersebut memiliki nilai yang sama, yaitu satu objek yang sama. Ini memiliki konsekuensi penting: jika Anda mengubah properti tertentu dari objek menggunakan satu variabel, perubahan yang sama akan muncul di variabel kedua.

Mari kita lihat dalam praktik. Buatlah objek user:

<?php $user = new User('john', 30); ?>

Tetapkan objek ke variabel lain:

<?php $test = $user; ?>

Ubah properti name pada variabel $test

<?php $test->name = 'eric'; ?>

Mari kita periksa bahwa objek yang sama telah berubah. Tampilkan properti name dari variabel $user:

<?php echo $user->name; // akan menampilkan 'eric'! ?>

Buatlah kelas Product, yang di dalamnya terdapat properti berikut: name, price.

Buat objek dari kelas Product, tulis ke dalam variabel $product1.

Tetapkan nilai variabel $product1 ke variabel $product2. Periksa bahwa kedua variabel merujuk pada satu objek yang sama.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak