webForumDet fria alternativet

En fråga om referenser

PHPur PHP

3 svar · 372 visningar · startad av Troxy

TroxyMedlem sedan mars 20041 505 inlägg
#1

Vad är skillnaden på följande två uttryck?

$b = &$a;
$b =& $a;
itpastornMedlem sedan feb. 2007278 inlägg
#2

Ingen. Men det första exemplet anses av de flesta nog vara lite fulare.

TroxyMedlem sedan mars 20041 505 inlägg
#3

Ah, detta förklarar en del förvirring! :birp
På tal om referenser. Säg att jag har en foreach-loop med referenser, såhär:

foreach($array as &$row) {
   if (...) {
      $row++;
   } else {
      unset($row); //Detta avsätter bara referensen, inte själva raden.
   }
}

Kan man ta bort raden ur arrayen med hjälp av referensen?

itpastornMedlem sedan feb. 2007278 inlägg
#4

Troxy skrev:

Kan man ta bort raden ur arrayen med hjälp av referensen?

Nej. Du kan bara sätta dess innehåll till NULL.

Referensräkning innebär att man måste ta bort varje referens till dess att ingen återstår. Då slutar det som pekats på att existera.

För att ta bort ett värde ur en array måste du alltså köra:

unset($arr[$key]);
129 ms totalt · 3 externa anrop · v20260731065814-full.363dfaf6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)