简介:
allow definition of user defined constants in simple ini files, which are then processed like internal constants, without any
of the usual performance penalties.
允许使用简单的ini文件来定义需要的常量,就像使用内部变量一样,而且没有使用define的性能问题。
作者说hidef is initialized in php module init, before apache starts spawning children.
在apache启动前,php启动时创建并初始化了这些常量,这样就不需要在php里define常量了,性能自然没有任何问题了!
在nginx下同样可用,以下是安装过程:
1、下载并解压进入目录
# wget http://pecl.php.net/get/hidef-0.1.8.tgz
# tar zxvf hidef-0.1.8.tgz
# cd hidef-0.1.8
2、没有configure文件,执行phpize创建该文件
# /usr/local/webserver/php/bin/phpize
# ./configure --enable-hidef --with-php-config=/usr/local/webserver/php/bin/php-config
# make
# make install
3、添加到php.ini文件里面
# vi /usr/local/webserver/php/etc/php.ini
-----------------------------------------------
extension=hidef.so
hidef.ini_path=/usr/local/webserver/php/etc/
------------------------------------------------------------------------------
注意,如果php.ini文件里面没有定义hidef.ini_path,则默认.ini文件读取位置为/hidef,只需手工创建文件 vi /hidef/hidef.ini即可。
# vi /usr/local/webserver/php/etc/hidef.ini(此处根据情况自己调整路径)
复制代码 代码如下:
[hidef]
int answer = 42;
str hx = "9enjoy";
float pie = 3.14159;
这里整数用int,浮点数用float,字符串用str。
字符串str的值使用双引号来包含,或者直接写字符串内容。如果使用单引号,将会把单引号也做为字符串的内容。
如str hx='9enjoy',实际存储的不是9enjoy,是'9enjoy'。
4、重新加载php-fpm即可
# /usr/local/webserver/php/sbin/php-fpm reload
此时,查看phpinfo()的结果,在hidef处就可以看到定义的变量。
-----------------------------------------------------------------------------
附:
如果使用了apc,apc提供了定义常量的方法。apc_define_constants和apc_load_constants。apc_define_constants将常量转为数组存到一个user cache中。虽然把常量存在了内存中,但每次php请求时,仍然需要读cache,分别定义,因此也不会有什么明显的性能提升。我测试了下定义25个常量,使用apc的函数比直接定义常量快了0.01ms。
这样使用:
if(!apc_load_constants('defined')) {
$constants = array(
'hx' => true,
'd_bug' => 1
);
apc_define_constants('defined', $constants);
}
define() is notoriously slow. since the main benefit of apc is to increase the performance of scripts/applications, this mechanism is provided to streamline the process of mass constant definition. however, this function does not perform as well as anticipated.
for a better-performing solution, try the hidef extension from pecl.
0
0
相关文章
PHP 8.3 中如何正确声明“某类对象数组”的类型?
如何递归遍历任意深度嵌套的多维数组(支持 foreach 与 for 循环)
如何递归遍历任意深度嵌套的多维数组(支持 foreach/for 循环扩展)
PHP 中合并多个学生成绩数组并按 student_id 去重合并
如何在 PHP 中正确接收 UDP 广播包
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题汇总了抖音网页版的入口链接、官方登录页面以及视频观看入口,帮助用户快速访问抖音网页版,提供免登录访问方式和直接进入视频播放页面的方法,确保顺利浏览和观看抖音视频。
61
2026.02.04
本专题详细汇总了学习通网页版入口与登录方法,提供学习通官方网页端入口、学生登录平台、网页版使用指南等内容,帮助用户快速稳定地登录学习通官网,顺利进入学习平台,提升学习效率和体验。
8
2026.02.04
本专题系统讲解 Python Django 框架的核心功能与进阶开发技巧,包括 Django 项目结构、数据库模型与迁移、视图与模板渲染、表单与认证管理、RESTful API 开发、Django 中间件与缓存优化、部署与性能调优。通过实战案例,帮助学习者掌握 使用 Django 快速构建功能全面的 Web 应用与全栈开发能力。
9
2026.02.04
本专题专注讲解 Java 在流式数据处理与消息队列系统中的应用,系统讲解 Apache Kafka 的基础概念、生产者与消费者模型、Kafka Streams 与 KSQL 流式处理框架、实时数据分析与监控,结合实际业务场景,帮助开发者构建 高吞吐量、低延迟的实时数据流管道,实现高效的数据流转与处理。
3
2026.02.04
本专题深入讲解 Golang 应用的容器化与 Docker 部署,涵盖 Docker 基础概念、容器构建与镜像管理、Go 应用的 Dockerfile 编写、跨平台容器部署与优化、Docker Compose 和 Kubernetes 部署工具。通过实际案例,帮助学习者掌握 如何将 Golang 应用容器化并实现高效部署与管理,提升系统的可扩展性与运维效率。
3
2026.02.04
热门下载
精品课程
最新文章





