gpt4 book ai didi

php - PHP 中是否有一个配置选项来防止未定义的常量被解释为字符串?

转载 作者:可可西里 更新时间:2023-11-01 13:58:10 24 4
gpt4 key购买 nike

这是来自 php 手册:http://us.php.net/manual/en/language.constants.syntax.php

If you use an undefined constant, PHP assumes that you mean the name of the constant itself, just as if you called it as a string (CONSTANT vs "CONSTANT"). An error of level E_NOTICE will be issued when this happens.

我真的不喜欢这种行为。如果我没有定义一个必需的常量,我宁愿脚本失败,这样我就不得不定义它。如果 PHP 试图使用未定义的常量,是否有任何方法可以强制 PHP 使脚本崩溃?

例如。这两个脚本做同样的事情。

<?php
define('DEBUG',1);
if (DEBUG) echo('Yo!');
?>

<?php
if(DEBUG) echo('Yo!');
?>

我宁愿第二个脚本 DIE 并声明它试图使用未定义的常量 DEBUG。

最佳答案

你可以像这样(丑陋地)做一些事情:

伪代码:

/**
* A Notice becomes an Error :)
*/
function myErrorHandler($errno, $errstr, $errfile, $errline) {
if ($errno == E_NOTICE) { // = 8
if (substr($errstr ... )) { // contains something which looks like a constant notice...
trigger_error('A constant was not defined!', E_USER_ERROR);
}
}
}
set_error_handler("myErrorHandler");

关于php - PHP 中是否有一个配置选项来防止未定义的常量被解释为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2812725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com