Je travaille à faire mon propre CMS personnalisé en PHP à la main et j'ai quelques constantes que j'ai définies. Y a-t-il un moyen facile de modifier les constantes? P>
Je pensais utiliser quelque chose comme fopen () code>, puis je n'ai jamais utilisé les fonctions du système de fichiers. P>
8 Réponses :
Autant que je sache, une fois défini, une constante ne peut pas être changée. P>
Cette déclaration doit être qualifiée. Pendant l'exécution? Qu'en est-il d'Eval ()?
Non. Ils sont La valeur [une constante] ne peut pas changer lors de l'exécution du script. p>
blockQuote>
Je suis désolé d'être incorrect ... pour moi des constantes ne sont qu'une valeur qui peut être utilisée sur tout un site entier sans avoir à continuer à les définir. J'aurais dû être plus clair ce que j'essayais d'atteindre. Je crée mon propre CMS pour mon propre usage et je me demandais comment je pourrais faire de la création d'un moyen de changer de variables ou tout ce qui leur permettrait d'éditer manuellement les fichiers / fichiers qui les contiennent. Je suis désolé.
Pas besoin de m'excuser d'être incorrect, cela arrive à tout le monde :)
D'accord. Quel serait le meilleur moyen de créer un fichier de configuration? Je vais ajouter un panneau d'administration à mon CMS et je veux que les variables soient modifiables de là.
Une constante est un identifiant (nom) pour une valeur simple.
comme nom suggère que la valeur ne peut pas changer lors de l'exécution du script fort> (à l'exception des constantes magiques, qui ne sont pas réellement des constantes). UNE constante est sensible à la casse par défaut. Par convention, constante Les identificateurs sont toujours majuscules. P> Le nom d'une constante suit les mêmes règles que toute étiquette dans PHP. UNE Nom constant valide commence par une lettre ou un soulignement, suivi de n'importe quel nombre de lettres, de chiffres ou de soulignement. Comme un régulier expression, il serait exprimé ainsi: [A-ZA-Z_ \ X7F- \ XFF] [A-ZA-Z0-9_ \ X7F- \ XFF] * P> blockQuote>
de: constantes em> (PHP Mamual ) p>
Je ne peux pas dire mieux que la page php.net!
Les constantes sont des constantes et ne peuvent donc pas être changées.
Si vous souhaitez modifier les constantes de serveur tels que allecter_url_fopen em>, c'est la responsabilité de l'hôte. Demandez-leur. P>
Si vous souhaitez les modifier en PHP, utilisez des variables. P>
Si la vérité est ce que CORBIN dit et que vous souhaitez les modifier dans l'installation, vous souhaitez effectuer ce qui suit: 1. Modifiez les valeurs constantes à, par exemple, Pour votre propre CMS uniquement, je suggère ce qui suit: Stockez tous les constantes em> dans un fichier, vous devez donc modifier un fichier uniquement. Et peut-être que la solution précédente pourrait fonctionner pour une modification plus facile, mais je ne sais pas si cela vaut la peine. P> %% Constant1 code>. 2. Lisez le code dans une variable. 3. Laissez l'utilisateur définir les variables. 4. Utilisez str_replace sur tous comme str_replace ("%% Constant1", $ _Post ["value1"], $ configfile) em>. 5. Ajouter $ configfile em> comme contenu d'un fichier. P>
Non. Vous ne pouvez pas modifier les constantes. P>
Cette déclaration doit être qualifiée. Pendant l'exécution? Qu'en est-il d'Eval ()?
Une constante signifie que la valeur est constante, vous ne pouvez donc pas changer de constante. Si vous modifiez une constante, vous devez utiliser une variable au lieu d'une constante:
define('ROOT', '/some/path'); echo ROOT; // Echoes /some/path define('ROOT', '/some/other/path'); // Gives an error echo ROOT; // Gives /some/path (if there were no error $root = '/some/path'; echo $root; // Echoes /some/path $root = '/some/other/path'; echo $root; // Echoes /some/other/path
Je pense que le point O signifie dans le cas d'un script d'installateur, où l'OP souhaite stocker une variable d'entrée dans un fichier de configuration, à utiliser dans le CMS de l'OP, une fois que l'installation est terminée.
Dans ce cas L'OP ne change pas la constante au moment de l'exécution. P>
L'OP a probablement reçu un fichier comme celui-ci: p> et l'OP veut créer un script qui Popule ces constantes avec des données, il peut donc être utilisé dans le CMS. P> p>
en PHP, mais uniquement si vous avez l'extension Runkit installée. p>
Cependant, je dois vous demander pourquoi vous définissez même une constante si vous devez le changer. Il ne serait plus une constante une fois changé et il convient d'utiliser des constantes dans votre contexte si cela doit être modifié. Vous voudrez peut-être envisager de faire une variable globale si elle doit être accessible dans d'autres fonctions ou parties de votre code, ou écrire un code approprié par: P>
Transmettre les données comme paramètres à une fonction, puis renvoyant les valeurs manipulées (si codez de manière procédurale). P>
Définissez la valeur dans une propriété de classe, puis accédez à la valeur en $ ceci dans votre classe (si codez dans une mode orientée objet (OO)). P>
Vous voudrez peut-être revisiter la définition du dictionnaire de "constante".
Pourquoi avez-vous besoin de changer de constance? S'ils ne sont pas constants de votre code, utilisez des variables
Les constantes sont des constantes - vous ne pouvez pas les modifier. Si, bien sûr, vous parlez de définir ("constante_name", "constante_value"); Sinon, expliquez sur l'exemple, car il semble que vous essayiez de parler de changements de paramètres de configuration de CMS dans son fichier de configuration, réécrivez-le avec le script PHP.
Je sais quelle moyenne constante. Je veux juste savoir s'il y a une façon de les changer, ou quelque chose de similaire. Je ne veux pas devoir continuer à les éditer manuellement à travers le fichier PHP. Je suis désolé de penser à la mauvaise chose.
Peut-être qu'il n'essaie pas de les modifier pendant l'heure actuelle, mais il veut les utiliser comme la configuration de son CMS et qu'il souhaite son script d'installation les modifier ou quelque chose? (Néanmoins pas une bonne solution, je pourrais juste avoir plus de sens de la question.)