Visualizzazione risultati 1 fino 8 di 8

Discussione: aiuto su variabili 'global'

  1. #1
    Guest

    Unhappy aiuto su variabili 'global'

    Mi succede una cosa strana.
    Questo script, eseguito da solo si comporta come mi aspetto.
    Se lo includo all'interno di un altro (wordpress) sembra che le variabili globali perdano il valore.
    Perchè????


    Codice PHP:
    $ignore_me = TRUE;

    test();

    function
    test()
    {
    global
    $ignore_me;

    if (
    $ignore_me) {
    echo
    'true';
    return;
    }
    echo
    'false';
    }

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Da quello che ho capito la funzione non ti stampa, ne true, ne false, come invece dovrebbe.

    Premetto di non avere mai usato wordpress, ma se ho capito bene credo che non centri nulla wordpress.

    Perché non levi il return dalla funzione e la modifichi in questo modo:
    Codice PHP:
    $ignore_me = TRUE;

    test();

    function
    test()
    {
    global
    $ignore_me;

    if (
    $ignore_me) {
    echo
    'true';
    }else {
    echo
    'false';
    }
    }
    O in questo modo.

    Codice PHP:
    $ignore_me = TRUE;

    test();

    function
    test()
    {
    global
    $ignore_me;

    if (
    $ignore_me == true) {
    echo
    'true';
    }else {
    echo
    'false';
    }
    }
    Ultima modifica di sevenjeak : 23-08-2010 alle ore 18.56.07

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Da quello che ho capito la funzione non ti stampa, ne true, ne false, come invece dovrebbe.

    Premetto di non avere mai usato wordpress, ma se ho capito bene credo che non centri nulla wordpress.
    Se eseguo lo script da solo va bene, stampa TRUE. Se lo includo in Wordpress, ammesso c'entri, mi stampa FALSE... come se perdesse il valore globale.
    Mi chiedo appunto se esista un qualche contesto php nel quale può accadere ciò. Magari Wordpress attiva qualcosa prima del mio @include...

    Quel return mi serve perchè non voglio eseguire il resto della funzione (quella lì non è completa ma solo un test).

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Infatti al posto del return ho messo l'else, in modo tale da eseguire la if, se la condizione risulta vera o l'else se la condizione risultasse false, ma non tutte due insieme.

    Cmq, non saprei come aiutarti, visto che come ho già detto prima non ho mai usato wordpress, magari potrai postare tutto il codice dove includi lo script e aspettare che qualcun'altro risponde.
    Ultima modifica di sevenjeak : 23-08-2010 alle ore 19.30.50

    Sevenjeak
    Software developer and much more

  5. #5
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Il problema è infatti wordpress, cercando sulla documentazione e su google non sono riuscito a capire il motivo di questo problema. ( forse per motivi di sicurezza? )

    Comunque ho capito come risolvere, devi definire la funzione e le variabili all'interno del file functions.php ( Funzioni Tema ) così potrai richiamarla in qualsiasi altra pagina ( header.php, footer.php etc... )

    Spero sia chiaro.

    @sevenjeak: dopo l'istruzione return, la funzione viene terminata. Quindi è inutile utilizzare if/else, a mio l'operatore ternario è ideale per questo caso:
    Codice PHP:
    echo $ignore_me ? 'true' : 'false';
    Ultima modifica di javascripter : 23-08-2010 alle ore 21.36.15

  6. #6
    Guest

    Predefinito

    Quindi mi sembra di capire che un modo c'è per impedire il corretto funzionamento delle variabili global...

  7. #7
    Guest

    Predefinito

    O quello o non ti permettono di usare funzioni esterne (quest'ultima ad istinto mi sa da bufala. Piuttosto sarei propenso a pensare che ti chiedano di inserire la funzione nel file function.php in modo da non farti riscrivere le require_once o include, o quel cavolo che ti serve, in ogni file di wordpress e considerato che non sono solo tre file sarei anche d'accordo nell'accontentarli xD).

  8. #8
    Guest

    Predefinito

    Accidenti come ci soffro quando non capisco il perchè!
    :'(

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •