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;
Para completar: http://php.net/manual/en/function.define.php – Cypher