Kā tiek nodotas mainīgās PHP?
sobes.tech AI
Atbilde no AI
PHP pēc noklusējuma mainīgie tiek nodoti pēc vērtības. Tas nozīmē, ka, piešķirot vienam mainīgajam citas mainīgās vērtību vai nododot mainīgo funkcijai, tiek izveidīta vērtības kopija. Šīs kopijas izmaiņas neietekmē sākotnējo mainīgo.
Tomēr mainīgie var tikt nodoti arī ar atsauci. Šādā gadījumā, vietā, lai nodotu vērtības kopiju, tiek nodots norādītājs uz to pašu atmiņas apgabalu kā sākotnējais mainīgais. Izmaiņas, kas veiktas ar atsauci, tieši ietekmē sākotnējo mainīgo.
Atsauces nodošana tiek izmantota:
-
Atsauces piešķiršana: ar operatoru
=&:// Atsauces piešķiršana $a = 10; $b =& $a; $b = 20; // izmaiņas $b ietekmē arī $a // tagad $a ir vienāds ar 20 -
Funkcijai nododot ar atsauci: funkcijas definīcijā parametra nosaukuma priekšā pievienojot
&:<?php // Funkcija, kas pieņem argumentu ar atsauci function modifyValue(&$value) { $value *= 2; } $number = 5; modifyValue($number); // tagad $number ir vienāds ar 10 ?> -
Vērtības atgriešana ar atsauci no funkcijas: funkcijas definīcijā pirms funkcijas nosaukuma pievienojot
&:<?php // Funkcija, kas atgriež vērtību ar atsauci function &getReference() { static $value = 0; $value++; return $value; } $a = &getReference(); $a = 100; // izmaiņas ietekmē funkcijas statisko mainīgo $b = &getReference(); // $b tagad atsauce uz to pašu statisko mainīgo (vērtība 101) ?>
Svarīgi atzīmēt, ka dažas datu tipi, piemēram, objekti, vienmēr tiek nodoti ar atsauci (vai precīzāk, tiek nodota atsauce uz objektu). Kad viens objekts tiek nodots citam, abas mainīgās norāda uz to pašu objekta eksemplāru:
| Nodošanas veids | Kā tas darbojas | Lietojums |
|---|---|---|
| Pēc vērtības | Tiek izveidota vērtības kopija | Droši sākotnējam mainīgajam |
| Pēc atsauces | Tiek nodots atmiņas norādītājs | Izmaiņas tieši ietekmē sākotnējo mainīgo |