è una prova che ho fatto io per farti vedere che la funzione query() se l'hai dichiarata dentro un'altra funzione la puoi richiamare solamente dall'interno di quella funzione in quanto "fuori" non è visibile. Inoltre per far si che venga eseguita tu devi fare un richiamo alla funzione madre, non direttamente a query();
Se la funzione f() contiene la dichiarazione della funzione g(), allora: la funzione g() esiste solo se viene chiamata f(); una volta definita, la funzione g() risulta visibile globalmente; se la funzione f() viene chiamata una seconda volta si ha un errore fatale perché risulta un tentativo di ridichiarare la funzione g(), cosa che è vietata.
Codice PHP:
function f()
{
function g() { ... }
...
}
f(); // dopo questa chiamata, g() esiste anche globalmente
g(); // posso chiamare g() anche se locale a f()!
f(); // errore fatale, g() viene ridefinita!
preso da: http://www.icosaedro.it/articoli/php...i-critica.html
In alternativa, e qui ho scoperto anche io una cosa che non sapevo, tu puoi richiamare direttamente la funzione query() basta che prima fai un richiamo alla funzione madre updateCart() e basta che dopo non fai più nessun richiamo ad updateCart se no dà errore, in quanto il compilatore tenterebbe di ridefinire query() e non puoi ridefinire una funzione già definita.
![]()