5 php
更新
有没有办法在 PHP 中强制区分大小写的函数名称,即使这意味着重新编译 PHP?
php.ini吗?C/C++源代码- 并使其作为- 这可以被 apache 配置覆盖的选项可用,并且在运行时与?
php.ini.htaccessini_set()有很多答案可以证实:
这个问题是关于控制情况的,因为如果您有以下问题,会很痛苦:
<?
define('List', ':List:');
die(List);
?>
Run Code Online (Sandbox Code Playgroud)
解析错误:语法错误,意外的 ')',期待 '('
在上面的例子中,“内在”函数名list干扰了“用户定义”常量,List而不是“好”的方式——因为它会导致解析错误。
我知道很多 PHP 开发人员不太关心“区分大小写”,也没有看到这样做的必要;但是,如果您正在构建一个整洁的样板,或者一个具有明确定义的数据类型作为短词的框架(出于比较原因),那么这是一个问题,因为您针对的是大量受众。
任何输入将不胜感激,谢谢。
小智 2
在网上寻找关于如何准确做到这一点的线索似乎是虚幻的;然而,以下内容可能对任何寻找实现相关目标线索的人有用。
要修改和编译 PHP 源代码,请参阅这篇文章:
以下是一些可能有用的提示:
sensitiv&的文件;case_然而,它可能在这里:./Zend/zendAPI.c 需要引用)CONST_CS及其值,定义在./Zend/zend_constants.h因为它经常使用/etc/php
为了使您的更改可配置在php.ini
./Zend/zend_ini.c文件./Zend/zend_ini_scanner.*文件中所示。
使您的更改可在 Apache 配置中进行配置 &.htaccess
mod_php5.c与PHP和Apache版本相对应的源代码:https://searchcode.com/codesearch/view/2479116/上述内容可能有助于重新构建 PHP,但是,可能有更好、更快的解决方案。
建设性批评
与这个问题的性质具体相关,编辑和重新编译源代码可能有点矫枉过正。它不仅完全超出了“PHP 语言”的范围,而且提到这是针对大量受众的,可能会完全违背框架/样板的目的。
更好的方法
对于这些确切的数据类型常量字的大小写敏感如此重要的确切原因尚不清楚;然而,也许重新命名它们,或者定义要使用的函数而不是不断的比较可能是有益的,所以:
List,怎么样ListDT(对于列表数据类型)isList()毕竟:在许多情况下,“编码速度”可能比“代码速度”更重要。
这种方法可以避免重新编译 PHP 的需要,并且“目标受众”不需要仅仅因为“框架”需要一些特定的单词而手动获取和安装非常特定的 PHP 版本。