Sono nuovo nella programmazione e in particolare nuovo in PHP. Trovo spesso che DRY sia direttamente contrario al principio di mantenere le variabili locali nelle funzioni PHP. A volte penso che sia più facile violare DRY per poter accedere prontamente a grandi array piuttosto che passare questi array o i relativi sottocomponenti rilevanti come parametri nelle funzioni.
Qualcuno ha pensieri su questo o su esempi di codice che trova un altro modo? Ecco un esempio del tipo di codice che a volte scrivo perché i miei array sono grandi e non voglio copiarli / passarli o scrivere tutti i blocchi che potrei usare in una funzione, quindi decidere di violare il DRY e non usarlo una funzione:
if($array1['status'][$i]==1)
{
for($j = 1; $j < 3; $j ++)
{
$j = 1;
$dist = $array2['dist'][$j];
$id = $array2['id'][$j];
$email = $array2['email'][$j];
send_offer_email($array1['appt_id'][$i], $array1['fulladd'][$i], $dist, $id, $email);
$j = 2;
$dist = $array2['dist'][$j];
$id = $array2['id'][$j];
$email = $array2['email'][$j];
send_offer_email($array1['appt_id'][$i], $array1['fulladd'][$i], $dist, $id, $email);
}
}
elseif($array1['status'][$i]==2)
{
for($j = 3; $j < 7; $j ++)
{
$j = 1;
$dist = $array2['dist'][$j];
$id = $array2['id'][$j];
$email = $array2['email'][$j];
send_offer_email($array1['appt_id'][$i], $array1['fulladd'][$i], $dist, $id, $email);
$j = 2;
$dist = $array2['dist'][$j];
$id = $array2['id'][$j];
$email = $array2['email'][$j];
send_offer_email($array1['appt_id'][$i], $array1['fulladd'][$i], $dist, $id, $email);
}
}
Chiaramente sono un noob, ma mi piacerebbe sapere cosa c'è di sbagliato nel fare questo vs dover scrivere tutte le cazzate di cui avrei bisogno per ridurre ognuna di queste se filiali a qualcosa di simile:
$j = 1
function(blah blah, $j)
In particolare, il blah blah nella funzione di cui sopra sarebbe molto lungo e viola sé stesso.
Grazie!