⊗ppOpAdPBR 23 of 107 menu

Вогуҳи объектҳо ба воситаи истинод дар ООП дар PHP

Бигзор мо чунин синфи User-ро дошта бошем:

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

Бигзор мо объекти ин синфро эҷод мекунем:

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

Акнун вазъияти зеринро тасаввар кунед: шумо мехоҳед қимати тағйирёбандаи $user-ро ба як тағйирёбандаи дигар, масалан $test, таъин кунед.

Агар сухан дар бораи объектҳо намебуд, балки дар бораи примитивҳо мебуд, яъне сатрҳо, рақамҳо, массивҳо ва ғайра, пас ба тағйирёбандаи $test нусхаи қимати тағйирёбандаи $user мерасид.

Ин маънои онро дорад, ки тағйироти ягон тағйирёбанда дар оянда қимати тағйирёбандаи дигарро тағйир намедод. Биёед ба мисол нигарем:

<?php $user = 1; $test = $user; // дар тағйирёбандаи $test акнун 1 аст $test = 2; // дар тағйирёбандаи $test акнун 2 аст, аммо дар $user - то ҳол 1 аст ?>

Бо объектҳо ҳолат фарқ мекунад - ҳангоми навиштан ба тағйирёбандаи дигар объектҳо нусхабардорӣ намешаванд, балки ба воситаи истинод вогуҳ дошта мешаванд: ин маънои онро дорад, ки ҳардуи ин тағйирёбандаҳо қимати як ва ҳамин объектро доранд. Ин оқибати муҳим дорад: агар ба воситаи як тағйирёбанда баъзе хосиятҳои объектро тағйир диҳем, дар тағйирёбандаи дуюм ҳамон тағйирот пайдо хоҳанд шуд.

Биёед дар амал нигарем. Объектеро бо корбар эҷод кунем:

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

Объектро ба тағйирёбандаи дигар таъин кунем:

<?php $test = $user; ?>

Хосияти name-ро дар тағйирёбандаи $test тағйир диҳем

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

Биёед санҷем, ки объекти умумӣ тағйир ёфтааст. Хосияти name-ро аз тағйирёбандаи $user хориҷ кунем:

<?php echo $user->name; // 'eric'-ро хориҷ мекунад! ?>

Синфи Product-ро созед, ки хосиятҳои зеринро дошта бошад: name, price.

Объекти синфи Product-ро эҷод кунед, онро ба тағйирёбандаи $product1 нависед.

Қимати тағйирёбандаи $product1-ро ба тағйирёбандаи $product2 таъин кунед. Санҷед, ки ҳарду тағйирёбанда ба як ва ҳамин объект истинод доранд.

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