En PHP, en fonction de votre niveau de rapport d'erreur, si vous ne définissez pas une constante, puis appelez-le comme suit:Je veux optimale Vérifiez Constantes définies en PHP
<?= MESSAGE ?>
Il peut imprimer le nom de la constante au lieu de la valeur!
Donc, j'ai écrit la fonction suivante pour contourner ce problème, mais je voulais savoir si vous connaissez un moyen de le faire dans le code plus rapide? Je veux dire, quand j'ai fait un test de vitesse sans cette fonction, je peux définir et vider 500 constantes en 0,0073 secondes. Mais utilisez cette fonction ci-dessous, et cela passe de 0,0159 à 0,0238 secondes. Donc, ce serait génial d'abaisser les microsecondes aussi petit que possible. Et pourquoi? Parce que je veux l'utiliser pour modéliser. Je pense qu'il doit simplement y avoir un meilleur moyen que de basculer le rapport d'erreurs avec toutes les variables que je veux afficher.
function C($constant) {
$nPrev1 = error_reporting(E_ALL);
$sPrev2 = ini_set('display_errors', '0');
$sTest = defined($constant) ? 'defined' : 'not defined';
$oTest = (object) error_get_last();
error_reporting($nPrev1);
ini_set('display_errors', $sPrev2);
if (strpos($oTest->message, 'undefined constant')>0) {
return '';
} else {
return $constant;
}
}
<?= C(MESSAGE) ?>
Vous pouvez désactiver le rapport d'erreurs plus simplement en utilisant l'opérateur "@", mais en interne il fait la même chose, donc c'est encore très lent. – Greg
Sûrement cela ne fonctionnera pas - si MESSAGE n'est pas défini alors l'avis sera généré avant même que vous n'atteigniez la fonction C(), et C() serait juste passé 'MESSAGE' –
aussi pourrais-je demander pourquoi vous utilisez un constante à cet effet? –