2010-11-09 12 views
17

¿Es posible usar una constante PHP dentro de una función PHP?¿Puedo usar constantes dentro de funciones en 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

¿por qué downvote un usuario nuevo? – Herr

+0

@Herr nuevo o viejo, pero primero debe mejorar sus habilidades de fraseo. –

+12

mejorar las habilidades de fraseo es algo y desalentador es algo completamente diferente. no seas un troll – Herr

Respuesta

18

No es necesario declarar en global en la función, PHP las reconoce como globales.

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; 
} 

De php.net:

Como superglobales, el alcance de una constante es global. Puede acceder a las constantes en cualquier lugar de su secuencia de comandos sin tener en cuenta el alcance. Para obtener más información sobre el alcance, lea la sección del manual en variable scope.

+2

Acabo de votar su respuesta, pero me gustaría señalar que * el php los reconoce como superglobales. * Debería ser * el php los reconoce como globales. * –

+1

10x lo arreglaré –

3

¿Has probado al menos? :)

Desde el manual:

Como superglobales, el alcance de una constante es global. Puede acceder a las constantes en cualquier lugar de su secuencia de comandos independientemente del alcance.

1

Sí, pero no es necesario que los llame "globales". Las constantes son globales. Si obtiene unexpected T_STRING, expecting T_VARIABLE como un error, es porque no espera ver las referencias constantes después de una declaración "global".

Cuestiones relacionadas