2012-05-21 8 views

Respuesta

15

Define tu constante en tu archivo superior .php, que se incluirá en todos los demás scripts. Puede ser su controlador frontal, su archivo de configuración o un archivo creado para este único propósito.

define('MY_CONST', 'hello'); 
+0

Para completar: http://php.net/manual/en/function.define.php – Cypher

6

haga lo siguiente:

define("CONSTANT_NAME","value"); 

si desea acceder a esta constante de otros archivos php, hay que incluirla:

include_once("thefilewiththeconstant.php"); 
0

Sea cual sea el archivo que crea su constante (s) en, tendrá que requerir/incluirlo en los archivos que los usará.

De lo contrario, puede usar el $ _SESSION global, pero eso requiere la inicialización de la sesión por session_start() al comienzo de su código en cada uno de esos archivos.

0

cheque esta

<?php 
//Global scope variables 
$a = 1; 
$b = 2; 

function Sum() 
{ 
global $a, $b; 

$b = $a + $b; 
} 

Sum(); 
echo $b; 
?> 
0

Una mejor manera es comprobar si la constante es asignado a cualquier cosa y si no está asignado a nada, entonces asignarle, de lo contrario asignar a NULL y después asignarlo a su constante

defined("FOO") ? null : define("FOO", "BAR"); 
1

Cuando desee utilizar constantes globales en archivos PHP, creo que una buena práctica es utilizar principios orientados a objetos y definirlos en clases relevantes. Usando la función spl_autoload_register() incorporada en PHP, puede definir todas sus clases posteriores para extender la "clase global" relacionada sin preocuparse por incluir archivos manualmente en todas partes. Todas las clases secundarias posteriores de esa clase global siempre tendrán acceso a las variables globales relacionadas. (Digo relacionado porque es un buen diseño tener constantes globales en una clase relacionadas de alguna manera, en lugar de todo agrupado sin rima o razón)

0

Depende. En su situación yo iría por define() porque tiene una sintaxis más compacta en uso. Pero define() solo puede contener valores escalares en PHP < 7.0 En caso de que necesite, por ejemplo, una matriz asociativa, no tiene otra opción que ir a $GLOBALS o usar PHP> = 7.0.

// Storing a single value works fine with define 
define('ROOT_DIR', dirname(dirname(__FILE__)) . '/'); 

// But not for complex data types like this array 
$USERPIC_PARAMS = array(
      "user_root"  => "images/users", 
      "padding_length" => 8, 
      "split_length"  => 4, 
      "hash_length"   => 12, 
      "hide_leftover"  => false 
    ); 

// Then you need $GLOBALS 
$GLOBALS['USERPIC_PARAMS'] = $USERPIC_PARAMS; 
// Or in PHP >=7.0 
define('USERPIC_PARAMS', $USERPIC_PARAMS); 

// output your define 
echo ROOT_DIR; 
// output your $GLOBALS var 
echo $GLOBALS['USERPIC_PARAMS']; 
// output in PHP >=7.0 your constant 
echo USERPIC_PARAMS; 
Cuestiones relacionadas