Visualizzazione dei risultati da 1 a 6 su 6

Discussione: variable scope

  1. #1

    variable scope

    Ciao a tutti, sono nuovo e spero di non essere OT,
    vorrei sapere una cosa semplice riguardo PHP (lo sto studiando da poco)

    supponiamo avere una cosa del genere:

    <?php

    $a='a';

    require_once("vcl/vcl.inc.php");
    //Includes
    use_unit("forms.inc.php");
    use_unit("extctrls.inc.php");
    use_unit("stdctrls.inc.php");

    //Class definition
    class Unit3 extends Page
    {
    public $Label1 = null;
    function Unit3Create($sender, $params)
    {
    global $username;
    $this->Label1->Caption=$a;
    }
    }

    global $application;

    global $Unit3;

    //Creates the form
    $Unit3=new Unit3($application);

    //Read from resource file
    $Unit3->loadResource(__FILE__);

    //Shows the form
    $Unit3->show();

    ?>

    fatta in delphi for php. Come faccio a leggere il contenuto della variabile $a dentro la funzione della classe? è possibile?

    Grazie in anticipo.

  2. #2
    Sì, hai due possibilità:
    E' molto semplice:
    Dichiari $a come variabile globale, poi la richiami nella funzione, potendola così usare normalmente.
    Ecco il tuo codice corretto
    Codice PHP:
    <?php

    global $a;//Dichiaro a come variabile globale, accessibile in tutto lo script
    $a='a';

    require_once(
    "vcl/vcl.inc.php");
    //Includes
    use_unit("forms.inc.php");
    use_unit("extctrls.inc.php");
    use_unit("stdctrls.inc.php");

    //Class definition
    class Unit3 extends Page
    {
    public 
    $Label1 null;
    function 
    Unit3Create($sender$params)
    {
    global 
    $username$a;//Richiamo oltre a $username, la variabile globale $a
    $this->Label1->Caption=$a;
    }
    }

    global 
    $application;

    global 
    $Unit3;

    //Creates the form
    $Unit3=new Unit3($application);

    //Read from resource file
    $Unit3->loadResource(__FILE__);

    //Shows the form
    $Unit3->show();

    ?>
    Spero di esserti stato utile!


    PS: Complimenti per lo script: per uno che ha appena cominciato è davvero molto complesso.

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Sbaglio o questo però richiede che nel php.ini sia impostato su on il register globals (che di solito è off sui server)?

  4. #4
    no, ti sbagli, le variabili globali si possono usare sempre e comunque, register globals riguarda, mi pare, il fatto che le variabili GET e POST siano registrate come normali varibili, non nell'apposito array.

  5. #5
    Ciao, intanto grazie della celere risposta.

    lo script è quasi gratis in quanto fatto con Delphi for PHP.

    detto questo dettaglio meglio il mio problema.. spero banale..
    ho un sito in joomla. con l'utente autenticato dò la possibilità di cliccare su un menù che vorrei facesse vedere il risultato di alcune query filtrando sull'username.

    Utilizzando l'extension jumi per joomla sono riuscito a richiamare pagine custom (lo script sotto) e riesco a passargli il parametro $username inviatomi da jumi, tanto è vero che se ad inizio script faccio un echo $username questo viene mostrato correttamente.

    a questo punto il mio problema.. sull'oncreate della classe del form che delphi for php genera perdo la visibilità della variabile $username. Vorrei riuscire invece a leggerla, così da darla in pasto ad una query con connessione al db ecc..

    Grazie di nuovo.

    Originariamente inviato da quit10
    Sì, hai due possibilità:
    E' molto semplice:
    Dichiari $a come variabile globale, poi la richiami nella funzione, potendola così usare normalmente.
    Ecco il tuo codice corretto
    Codice PHP:
    <?php

    global $a;//Dichiaro a come variabile globale, accessibile in tutto lo script
    $a='a';

    require_once(
    "vcl/vcl.inc.php");
    //Includes
    use_unit("forms.inc.php");
    use_unit("extctrls.inc.php");
    use_unit("stdctrls.inc.php");

    //Class definition
    class Unit3 extends Page
    {
    public 
    $Label1 null;
    function 
    Unit3Create($sender$params)
    {
    global 
    $username$a;//Richiamo oltre a $username, la variabile globale $a
    $this->Label1->Caption=$a;
    }
    }

    global 
    $application;

    global 
    $Unit3;

    //Creates the form
    $Unit3=new Unit3($application);

    //Read from resource file
    $Unit3->loadResource(__FILE__);

    //Shows the form
    $Unit3->show();

    ?>
    Spero di esserti stato utile!


    PS: Complimenti per lo script: per uno che ha appena cominciato è davvero molto complesso.

  6. #6
    Molto semplice: sostituisci $a con $username

    Codice PHP:
    <?php

    global $username;//Dichiaro username come variabile globale, accessibile in tutto lo script

    require_once("vcl/vcl.inc.php");
    //Includes
    use_unit("forms.inc.php");
    use_unit("extctrls.inc.php");
    use_unit("stdctrls.inc.php");

    //Class definition
    class Unit3 extends Page
    {
    public 
    $Label1 null;
    function 
    Unit3Create($sender$params)
    {
    global 
    $username;//Richiamo la variabile globale $username
    $this->Label1->Caption=$a;
    }
    }

    global 
    $application;

    global 
    $Unit3;

    //Creates the form
    $Unit3=new Unit3($application);

    //Read from resource file
    $Unit3->loadResource(__FILE__);

    //Shows the form
    $Unit3->show();

    ?>

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.