Domanda

Mi ritrovo a fare molte cose con array associativi in ??PHP.

Lo stavo facendo:

 foreach ($item as $key=>$value) {
     if ($arr[$key] == null) {
         $arr[$key] = 0; 
     }
     $arr[$key] += $other_arr[$value];
 }

Ma poi mi sono reso conto che funziona bene se escludo la riga che inizializza $ arr [$ key], presumibilmente poiché è null che è trattato come lo stesso di 0.

Rendere sicuro quel tipo di ipotesi in php? E se è sicuro, è una buona idea?

È stato utile?

Soluzione

È sicuro ma lo sconsiglio. Se porti la segnalazione degli errori a E_NOTICES vedrai che il tuo codice ne produce molti, mascherando eventuali errori reali (come un nome di variabile errato).

Quello che dovresti davvero fare è:

if (!isset($arr[$key]))
    $arr[$key] = 0;

Questo non genererà un avviso (ma fai molta attenzione a non digitare in modo errato $ arr dentro isset ()).

Altri suggerimenti

A partire da php 7 ora puoi fare quanto segue:

foreach ($item as $key=>$value) {
    $arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top