De ce que je sais sur PHP, la syntaxe suivante est Il devrait plutôt être écrit comme suit: p> Cependant, le premier exemple fonctionne très bien. Quelqu'un sache pourquoi? P> p>
6 Réponses :
généralement, il serait interprété comme une constante, mais si PHP ne peut pas trouver une constante par ce nom, il suppose que c'est un littéral strict malgré le manque de citations. Cela générera un message e_notice (qui peut ne pas être visible, en fonction du niveau de déclaration d'erreur); quelque chose comme: p>
AVIS: Utilisation de la constante non définie oui - supposée 'oui' dans script.php sur la ligne 3 p> blockQuote>
Fondamentalement, PHP est juste trop clément. P>
En bref, PHP agit comme si les devis étaient là. P>
Si PHP ne reconnaît pas quelque chose en tant que jeton réservé, cela traite comme un littéral à chaîne. P>
Le journal d'erreur montrera un avertissement à ce sujet. P>
Le premier n'est pas une chaîne.
et il ne fonctionne pas bien: P>
error_reporting(E_ALL);
if ($s == Yes) {}
dans PHP que oui serait traité comme une constante. Si la constante est indéfinie, cela supposera que vous vouliez dire la chaîne «oui». Il devrait générer une notification si vous les avez allumées. P>
Vous devez avoir à la fois ERROR_RORPORTER DES AVISIOUS ET DISPLAY_Errors définie.
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', '1');
if ($s == Yes) {
// foo
}
PHP convertit Oui à "Oui" en interne lorsque la constante oui est trouvée à ne pas être définie. P>
btw .. Si ce que vous voulez comparer si $ s a "oui" comme valeur an est une chaîne alors vous devez p>
a) utilise STRCMP ou b) Utilisez l'opérateur d'identité "===" p>
Développez toujours PHP avec toutes les rapports d'erreur sur. Tous les avis invisibles ralentissent votre application et le rendent inutilisable pour les autres qui n'ont pas été signalés par erreur.