⊗ppOpAdPBR 23 of 107 menu

Uhamishaji wa Vitu kwa Kumbukumbu katika OOP katika PHP

Hebu tuchukue kuwa tuna darasa User kama ifuatavyo:

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

Hebu tuunde kitu cha darasa hili:

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

Sasa fikiria hali ifuatayo: unataka thamani ya mabadiliko $user kuipeana kwa mabadiliko mengine, kwa mfano $test.

Kama lingekuwa si suala la vitu, bali la primitive, yaani masharti, nambari, arrays na kadhalika, basi kwenye mabadiliko $test ingeingia nakala ya thamani ya mabadiliko $user.

Hii inamaanisha kuwa mabadiliko ya yoyote kati ya mabadiliko baadaye hayingebadilisha thamani ya mabadiliko mengine mabadiliko. Hebu tuangalie kwa mfano:

<?php $user = 1; $test = $user; // kwenye mabadiliko $test sasa kuna 1 $test = 2; // kwenye mabadiliko $test sasa kuna 2, lakini kwenye $user - bado 1 ?>

Kwa vitu ni tofauti - wakati wa kurekebisha kwenye mabadiliko mengine vitu hazinakiliwi, bali huhamishwa kwa kumbukumbu: hii inamaanisha, kuwa mabadiliko yote mawili yenye thamani huwa na kitu kimoja tu. Hii ina athari muhimu: kama kubadilisha sifa zozote za kitu na kutumia mabadiliko moja, kwenye mabadiliko ya pili mabadiliko haya yataonekana.

Hebu tuangalie kwa vitendo. Tuunde kitu cha mtumiaji:

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

Tuipeane kitu kwa mabadiliko mengine:

<?php $test = $user; ?>

Hebu tubadilishe sifa name kwenye mabadiliko $test

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

Hebu tuangalie, kama kitu kilichobadilika kwa pamoja. Tuonyeshe sifa name kutoka kwenye mabadiliko $user:

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

Tengeneza darasa Product, ambamo itakuwa na sifa zifuatazo: name, price.

Unda kitu cha darasa Product, andika kwenye mabadiliko $product1.

Ipe thamani ya mabadiliko $product1 kwa mabadiliko $product2. Angalia kuwa mabadiliko yote yanarejelea kitu kimoja tu.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa