2010-11-09 16 views
17

È possibile utilizzare una costante PHP all'interno di una funzione PHP?Posso usare le costanti all'interno delle funzioni in PHP?

// in a different file 
DEFINE ('HOST', 'hostname'); 
DEFINE ('USER', 'username'); 
DEFINE ('PASSWORD', 'password'); 
DEFINE ('NAME', 'dbname'); 

// connecting to database 
function database() 
{ 
    // using 'global' to define what variables to allow 
    global $connection, HOST, USER, PASSWORD, NAME; 
    $connection = new mysqli(HOST, USER, PASSWORD, NAME) 
     or die ('Sorry, Cannot Connect'); 
    return $connection; 
} 
+0

perché downvotare un nuovo utente? – Herr

+0

@Herr nuovo o vecchio, ma prima deve migliorare le sue abilità di fraseggio. –

+12

migliorare le abilità di fraseggio è qualcosa e scoraggiare è qualcosa di completamente diverso. non essere un troll – Herr

risposta

18

Non è necessario dichiararli in global nella funzione, PHP li riconosce come globali.

function database() 
{ 
    // using 'global' to define what variables to allow 
    global $dbc; 
    $connection = new mysqli(HOST, USER, PASSWORD, NAME) 
     or die ('Sorry, Cannot Connect'); 
    return $connection; 
} 

Da php.net:

Come superglobals, l'ambito di una costante è globale. È possibile accedere a costanti in qualsiasi punto del proprio script indipendentemente dall'ambito. Per ulteriori informazioni sull'ambito, leggere la sezione del manuale su variable scope.

+2

Hai appena messo in su la tua risposta, ma vorrei sottolineare che * il php li riconosce come superglobali * dovrebbe essere * il PHP li riconosce come globali. * –

+1

10x lo aggiusterò –

3

Hai almeno provato? :)

Dal manual:

Come superglobals, il campo di applicazione di una costante è globale. È possibile accedere alle costanti ovunque nello script indipendentemente dall'ambito.

1

Sì, ma non è necessario chiamarli "globali". Le costanti sono globali. Se ottieni unexpected T_STRING, expecting T_VARIABLE come errore, è perché non si aspetta di vedere i riferimenti costanti dopo un'istruzione "globale".

Problemi correlati