Jeg har et $arr. Jeg looper genne dette array og udfører kode, når værdien i næste array value ændrer sig fra forrige værdi: $i=0; while($i<count($arr)){ if($arr[$i]!==$arr[$i-1]){ Noget kode her } $i++; }
Problemet er i PHP8, at der kommer fejl da $arr[$i-1] ikke er defineret, når $i er 0. Er der en måde at lave dette på, som ikke giver denne fejl i PHP8? Jeg kan jo lave en if sætning, når $i==0 og overnstående for kode for $i>0, men det er ikke særligt elegant.
Men det er værd at bemærke at koden altid har været defekt. PHP 8 har ikke ændret betydningen af koden. PHP 8 har kun ændret niveauet for beskeden omkring problemet fra Notice til Warning.
Løsningen i #3 er vel den mest elegante hvis det er den ønskede logik.
Jeg har ofte brugt logikken:
$last_value = SOME_INVALID_VALUE; et loop typisk while men kunne også være for { if($current_value != $last_value) { do something $last_value = $current_value; } }
Jeg har brugt denne form for opbygning. Fungere fint efter mit hoved.
for ($index = 0; $index < count($Arr); $index++) { if( isset($Arr[$index]) ){ // Array data fundet. // Udfør kode
}else{ // Ingen array data } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.