Atribuirea prin referinta se face folosind semnul "&" in fata variabilei.
- Exemplu:
$x = 'abc';
$y = &$x;
echo $y; // abc
Atribuirea prin referinta e mai mult decat o simpla atribuire de valoare, de fapt leaga intre ele cele 2 variabile pe parcursul scriptului. Astfel, daca se modifica ulterior valoarea uneia dintre variabile, se transmite si la cealalta.
Exemplu (vedeti comentariile din cod):
<?php
$x = 'MarPlo.net';
$y = &$x;
echo $y; // MarPlo.net
// Se modifica valoarea lui $x, si va afecta si pe $y
$x = 'CoursesWeb.net';
echo '<br/>'. $y; // CoursesWeb.net
// Se modifica valoarea lui $y, se schimba si la $x
$y = 'php.net';
echo '<br/>'. $x; // php.net
?>
Atribuire prin referinta si functii
Atribuirea prin referinta se transfera si de la variabile (parametru) definite in interiorul unei functii catre variabila din exterior transmisa la apelare, daca se adauga caracterul "&" la parametru functiei cand e definita. Va afecta orice variabila folosita ca argument pentru acel parametru la apelare.
- Exemplu, variabila folosita ca argument la apelare e afectata /modificata si ea de valoarea respectivului parametru definit cu "&":
<?php
function foo(&$a) {
$a = $a + 2;
}
$x = 7;
// Se apeleaza functia cu variabila $x la argument
// Parametrul lui foo() avand caracterul "&", va transmite ultima valoare a lui ( setata in corpul functiei) si in exterior, la $x
foo($x);
echo $x; // 9
?>
.Dupa cum observati, atribuirea prin referinta poate crea situatii /efecte destul de complexe, de aceea este indicat a se evita folosirea ei, mai ales la incepatori.
Un Test simplu in fiecare zi
HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag defineste zona de click intr-o harta creata dintr-o imagine?
<map> <img> <area><img src="image.jpg" usemap="#map1">
<map name="map1">
<area shape="rect" coords="9, 120, 56, 149" href="#">
<area shape="rect" coords="100, 200, 156, 249" href="#">
</map>
Ce proprietate CSS indica ce sa se intample cand continutul unui element depaseste dimensiunile lui?
display overflow position#id {
overflow: auto;
}
Clic pe evenimentul care este declansat cand mouse-ul e deasupra unui obiect.
onclick onmouseover onmouseoutdocument.getElementById("id").onmouseover = function(){
document.write("Sa ai Viata Buna");
}
Indicati variabila PHP ce contine datele adaugate in adresa URL, dupa caracterul "?".
$_SESSION $_GET $_POSTif(isset($_GET["id"])) {
echo $_GET["id"];
}
Clic pe pronumele reflexiv care e potrivit in propozitia: "Marc is the boy ... won the prize".
who which whoeverMarc is the boy who won the prize.
- Marc e baiatul care a castigat premiul.
Clic pe pronumele reflexiv care e potrivit in propozitia: "Voy a ver al pintor de ... les hablé ayer".
que quien cuyoVoy a ver al pintor de quien les hablé ayer.
- Ma duc sa vad pictorul despre care ti-am vorbit ieri.