⊗ppOpAdPBR 23 of 107 menu

Penghantaran Objek melalui Rujukan dalam OOP dalam PHP

Katakan kita diberikan kelas User seperti berikut:

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

Katakan kita mencipta objek kelas ini:

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

Sekarang bayangkan situasi berikut: anda ingin menetapkan nilai pembolehubah $user kepada pembolehubah lain, contohnya $test.

Jika ini bukan mengenai objek, tetapi mengenai primitif, iaitu rentetan, nombor, tatasusunan dan sebagainya, maka salinan nilai pembolehubah $user akan masuk ke dalam pembolehubah $test.

Ini bermakna perubahan mana-mana pembolehubah kelak tidak akan mengubah nilai pembolehubah yang satu lagi. Mari lihat contoh:

<?php $user = 1; $test = $user; // dalam pembolehubah $test sekarang ialah 1 $test = 2; // dalam pembolehubah $test sekarang ialah 2, manakala dalam $user masih 1 ?>

Dengan objek, ia berbeza - apabila ditulis ke dalam pembolehubah lain, objek tidak disalin, sebaliknya dihantar melalui rujukan: ini bermakna, kedua-dua pembolehubah ini mempunyai nilai objek yang sama. Ini mempunyai implikasi penting: jika anda menukar sebarang sifat objek menggunakan satu pembolehubah, perubahan yang sama akan muncul dalam pembolehubah kedua.

Mari kita lihat secara praktikal. Cipta objek dengan pengguna:

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

Tetapkan objek kepada pembolehubah lain:

<?php $test = $user; ?>

Tukar sifat name dalam pembolehubah $test

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

Mari kita semak sama ada objek bersama telah berubah. Paparkan sifat name dari pembolehubah $user:

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

Buat kelas Product, di mana terdapat sifat berikut: name, price.

Cipta objek kelas Product, tulis ia ke dalam pembolehubah $product1.

Tetapkan nilai pembolehubah $product1 kepada pembolehubah $product2. Semak bahawa kedua-dua pembolehubah merujuk kepada satu objek yang sama.

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