bonjour je vien vers vous car je ne comprend pas la difference....
j’utilise une variable pour mon site

$config['root'] = 'http://site.fr';

mais quel est la difference avec

define ( ROOT , 'http://site.fr')

je ne comprend pas l’interait des constante...

merci de votre aide.

4 réponses


arnich
Réponse acceptée

Une constante a une portée globale et ne peut pas etre redéfinie plus tard contrairement à la variable.

lolotoobo
Réponse acceptée

L"intéret est la que la constante ne peut être modifiée, donc déjà ca permet d'éviter des petits bugs et intellectuellement si tu as une valeur que tu sais qu'elle ne changera pas, il est bien de la définir en constante. Par exemple M_PI qui vaut la valeur de pi ne changera jamais.

clementp
Auteur

oké merci pour vos lumieres

Toutes les valeurs sujettes à être changées plus tard devraient avoir une constante. De cette façon, tu ne chercheras jamais dans le code, tu pourras changer ta constante. :-)

Je trouve pas très idéale d'avoir des constantes avec une portée globale, donc si tu veux, tu peux utiliser les classes, ainsi ça précise la nature de la constante. Parfois c'est quand même utile, ça dépend... :-)

class MaClasse
{
    const MA_CONSTANTE_SIGNIFICATIVE = 1337;

    public function __construct () 
    {
        echo self::MA_CONSTANTE_SIGNIFICATIVE;
    }
}

echo MaClasse::MA_CONSTANTE_SIGNIFICATIVE;