⊗ppOpAdPBR 23 of 107 menu

Kalimi i objekteve me referencë në OOP në PHP

Le të kemi klasën User si më poshtë:

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

Le të krijojmë një objekt të kësaj klase:

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

Imagjinoni tani situatën e mëposhtme: ju dëshironi të caktoni vlerën e ndryshores $user ndonjë ndryshoreje tjetër, për shembull $test.

Nëse nuk do të ishte fjala për objekte, por për primitiva, d.m.th për vargje, numra, vargje etj, atëherë në ndryshoren $test do të shkonte një kopje e vlerës së ndryshores $user.

Kjo do të thotë se ndryshimet në cilindo nga ndryshoret në të ardhmen nuk do të ndryshonin vlerën e ndryshores tjetër. Le të shohim një shembull:

<?php $user = 1; $test = $user; // në ndryshoren $test tani është 1 $test = 2; // në ndryshoren $test tani është 2, kurse në $user - ende 1 ?>

Me objektet është ndryshe - kur shkruhen në ndonjë ndryshore tjetër, objektet nuk kopjohen, por kalohen me referencë: kjo do të thotë se të dyja këto ndryshore kanë si vlerë të njëjtin objekt. Kjo ka një pasojë të rëndësishme: nëse ndryshohen disa veti të objektit duke përdorur një ndryshore, në ndryshoren e dytë do të shfaqen të njëjtat ndryshime.

Le të shohim në praktikë. Le të krijojmë një objekt me përdorues:

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

Le ta caktojmë objektin në një ndryshore tjetër:

<?php $test = $user; ?>

Le të ndryshojmë vetinë name në ndryshoren $test

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

Le të kontrollojmë nëse ka ndryshuar objekti i përbashkët. Le të shfaqim vetinë name nga ndryshorja $user:

<?php echo $user->name; // do të shfaqë 'eric'! ?>

Krijoni klasën Product, në të cilën do të ketë vetitë e mëposhtme: name, price.

Krijoni një objekt të klasës Product, shkruajeni atë në ndryshoren $product1.

Caktoni vlerën e ndryshores $product1 në ndryshoren $product2. Kontrolloni që të dyja ndryshoret referohen në të njëjtin objekt.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo