В PHP, в зависимости от уровня сообщения об ошибках, если вы не определили константу, а затем назвали ее так:
<?= MESSAGE ?>
Может выводить имя константы вместо значения!
Итак, я написал следующую функцию, чтобы обойти эту проблему, но я хотел знать, знаете ли вы способ сделать это в более быстром коде? Я имею в виду, что когда я проводил тест скорости без этой функции, я могу определить и вывести 500 констант за 0,0073 секунды. Но используйте эту функцию ниже, и она переключается от 0,0159 до 0,0388 секунд. Таким образом, было бы здорово уменьшить микросекунды до минимума. И почему? Потому что я хочу использовать это для шаблонов. Я думаю, что просто должен быть лучший способ, чем переключать отчеты об ошибках с каждой переменной, которую я хочу отобразить.
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) ?>