www w3schools w3school w3s variable php_if_else define constantes constant asp php variables global-variables constants

w3schools - php global variable



php-La mejor manera de definir la constante global(disponible en todos los archivos) (7)

Cuando quiera usar constantes globales en los archivos PHP, creo que una buena práctica es usar principios orientados a objetos y definirlos en clases relevantes. Usando la función spl_autoload_register () integrada 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)

Cuál es la mejor manera de definir una constante que sea Global, es decir, debería estar disponible en todos los archivos en PHP.

Gracias

ACTUALIZACIÓN: ¿Cuáles son las diferencias entre las constantes y las constantes de clase, pueden usarse indistintamente?


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

!defined(''MY_CONST'') && define(''MY_CONST'', ''hello'');


Depende. En su situación, me gustaría 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, vaya a $GLOBALS o use 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;


Haz lo siguiente:

define("CONSTANT_NAME","value");

Si desea acceder a esta constante desde otros archivos php, debe incluirla:

include_once("thefilewiththeconstant.php");


Mira esto

<?php //Global scope variables $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?>


Sea cual sea el archivo en el que cree su (s) constante (s), deberá solicitarlo / incluirlo en los archivos en los que lo va a utilizar.

De lo contrario, puede usar $ _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.


Una mejor manera es verificar si la constante está asignada a algo y si no está asignada a nada, luego asignarla, o bien asignarla a NULL y luego asignarla a tu constante

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