Occasionalmente scriverò una funzione PHP con un singolo input, un array associativo contenente tutti gli input di quella funzione. Ciò ha dei vantaggi, come non dover ricordare l'ordine corretto degli input, ma ho anche notato che rende molto più semplice implementare le modifiche a codebase di grandi dimensioni; quando ho bisogno di aggiungere un'altra variabile, e quella variabile deve passare attraverso 4 o 5 funzioni preesistenti, è molto più semplice quando posso semplicemente inserirla nell'array e trasferirla.Utilizzo di un array associativo come input della funzione php
La mia domanda è, c'è un lato negativo a fare questo?
Raramente vedo le funzioni scritte in questo modo negli esempi o nell'open source che uso, il che mi porta a credere che probabilmente c'è un aspetto negativo. Se il numero non è un motivo per non farlo, perché non scrivere tutte le funzioni in questo modo?
UPDATE
Grazie per tutte le vostre risposte. Sembra che due problemi principali spiccano:
la leggibilità del codice - impossibile dire quali variabili stanno andando in una funzione e quello che stanno per
scorrimento variabile - potrebbe finire con le matrici enormi che rimbalza da una funzione all'altra; non si devono passare parametri a funzioni che non li richiedono
Quali sono entrambi i punti importanti a cui non ho pensato.
Sembra che l'essenza generale sia che il codice in cui questo è un problema, dovrebbe probabilmente essere convertito in una classe. Sfortunatamente in questo specifico progetto un tale refactoring va oltre lo scopo, ma penso anche che la soluzione di Bill Karwin sia buona: passare una serie di variabili opzionali
Fuori di interesse si può inserire una funzione di esempio si può scrivere? :) –
@Shadi - più come "per curiosità morbosa"? :) –
Così, invece di funzione myFunc ($ var1, var2 $, $ var3, $ var4 ...) {} avresti funzione myFunc ($ params) {} e quindi fare riferimento tramite $ params ['var1'], ecc. – thekevinscott