Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Originariamente inviato da blur
    no perchè l'action del form richiama proprio updateCart(). e quindi devo fare in modo che eseguendola, mi esegui anche la funzione query() che è annidata.
    quindi, come faccio a richiamare una funzione dentro a un altra funzione?
    la devi richiamare all'interno della funzione "madre". Al di fuori di quella php non la vede

    Codice PHP:
    <?php
    echo updateCart();

    function 
    updateCart()
    {
        function 
    query($id_area$id_pag)
        {
            return 
    $id_area." - ".$id_pag;
        }
        
        echo 
    query(78);
        
    }
    ?>
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #12
    scusami, ma devo capire...

    updateCart() all'interno del file padre ( o madre) viene richiamato dal form submit all'interno di uno switch che poi fa eseguire la funzione
    Codice PHP:
    require_once 'library/cart-functions.php'// questo è file1.php

    $action = (isset($_GET['action']) && $_GET['action'] != '') ? $_GET['action'] : 'view';

    switch (
    $action) {
        case 
    'add' :
            
    addToCart();
            break;
        case 
    'update' :
            
    updateCart();
            break;
        case 
    'delete' :
            
    deleteFromCart();
            break;
        case 
    'view' :

    ma non c'è nessun echo updateCart();
    non capisco il codice che mi hai postato. cos'è echo query(7, 8); ?

  3. #13
    è 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.






    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #14
    niente... questa strada non è percorribile.
    ho deciso di mettere la funzione query() fuori da updateCart().
    però devo dire allo switch che all'action, oltre a eseguire la funzione updateCart(), deve far eseguire query().

    Codice PHP:
    switch ($action) {
        case 
    'add' :
            
    addToCart();
            break;
        case 
    'update' :
            
    updateCart();
           
    query();       // <------ aggiunta la funzione
            
    break;
        case 
    'delete' :
            
    deleteFromCart();
            break;
        case 
    'view' :

    adesso però c'è un altro problema, si io metto nello switch le 2 funzioni assieme,
    updateCart mi frega tutte le $var che mando via POST ! per cui query() rimane senza le 2 che mi servono per la query.....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.