Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Functions vs Functions Variable

    Salve ragazzi vorrei capire la differenza tra il dichiarare una funzione in questo modo:
    Codice PHP:
    function foo() {
    echo 
    'foo';
    }
    foo(); 
    e in quest'altro:
    Codice PHP:
     $foo = function() {
        echo 
    'foo';
        };
         
        
    $foo(); 
    E se poi implemnto una cosa del genere perché non va?
    Codice PHP:


        $r 
    = function ($i) {
                                        return(
    $i*5);
                                };
                               
                                
    $w = function($r(10)) {
                                               
                                        echo 
    'ciao '.$r(10);   
                                };
         
                                
    $w($r(10)); 
    Grazie

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Codice PHP:
    $w = function($r(10)) 
    Questo non va bene perchè non puoi eseguire una funzione nella definizione delle variabili

    Codice PHP:
     echo 'ciao '.$r(10); 
    questo è sbagliato perchè sei all'interno della funzione $w e quindi in quel contesto la funzione $r non viene riconosciuta (a meno che non la definisci prima come global)

    .... quindi:

    Codice PHP:
        $r = function ($i) {
                return(
    $i*5);
        };

        
    $w = function($a) {
                global 
    $r;
                echo 
    'ciao '.$r($a);   
        };
         
       
    $w($r(10)); 
    Così dovrebbe funzionare

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Quindi secondo te dovrei utilizzare le classiche funzioni function foo() o le funzioni associate a delle variabili? Cioè dove sta la vera differenza?!!

  4. #4
    Codice PHP:

    $r 
    = function($i){
      return 
    $i*5;
    };

    $w = function($a) use($r){
       echo 
    'ciao '.$r($a);
    };

    $w(10); 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Posso sapere dove sta la vera differenza tra le classiche funzioni e le funzioni associate ad una variabile? Cioè se io dovessi implementare una piattaforma mi converrebbe utilizzare quale delle due? Grazie

  6. #6
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    PHP supporta il concetto di funzioni variabili. Ciò significa che se un nome di variabile ha le parentesi accodate ad esso, PHP cercherà una funzione con lo stesso nome del valore della variabile, e cercherà di eseguirla. Tra le altre cose, ciò puo essere usato per implementare delle callbacks, tabelle di funzioni e così via.
    Le funzioni variabili non funzionano con costrutti di linguaggio come echo, print, unset(), isset(), empty(), include, require e simili. Occorre costruire una propria funzione per utilizzare questi costrutti come variabili per funzioni.
    Fonte: http://it2.php.net/manual/it/functio...-functions.php
    Vedi se ti può essere d'aiuto

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Quote Originariamente inviata da blasco88 Visualizza il messaggio
    Quindi secondo te dovrei utilizzare le classiche funzioni function foo() o le funzioni associate a delle variabili? Cioè dove sta la vera differenza?!!
    in effetti non c'è una vera differenza, è più una questione di "stile" di scrittura, io personalmente preferisco il metodo classico, trovo che il codice sia più leggibile, e per la mia esperienza è di gran lunga il metodo più diffuso ..... però ripeto è una semplice questione di gusti.

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

Tag per questa discussione

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.