关于的PHP中 define()效率问题

来源:百度知道 编辑:UC知道 时间:2024/05/06 18:31:29
最近在网上看了一篇文章:

DEFINE是大家常用的定义常量的方法,但是DEFINE是存在一定的性能问题的。虽然一般的项目中可能会觉得DEFINE也不会很多,影响不是很大。

但是,实际上,由于require的使用和嵌套等,会在不知不觉中引用到很多的DEFINE。 例如,公司某个最近发布的项目中,一个典型的页面会引用到接近400个DEFINE,使用APD进行profiling后会发现DEFINE消耗的CPU非常靠前。

我们进行了一些对比测试:
准备了4个php文件

////////////////////
d1.php
<?php
DEFINE('D1', 1);
DEFINE('D2', 2);
DEFINE('D3', 3);
...
?>
////////////////////
d2.php
<?php
Class d2
{
Var $d1 = 1 ;
Var $d2 = 2 ;
Var $d3 = 3 ;
...
?>
////////////////////
d3.php
<?php
Class d3
{
const d1 = 1 ;
const d2 = 2 ;
const d3 = 3 ;
...
?>
////////////////////
s1.php
<?php
$i=0;
$i+=1;
$i+=1;
$i+=1;
...
?>
//////

自定义常量用得不是非常多,很少发生这种问题。

上面的几种用法里面,确实自定义常量比较耗资源,但也没必要搞得不敢用它。

每一个函数的使用都会占用一定的系统资源,赋值运算当然比用函数定义常量省资源。只要尽量少用就是了。不要搞得如文中所有一个站点程序有400多个自定义常量就行了。

http://www.phpsu.com/phpfunction/list_4_1.html
这里都是函数的问题,可以参考,呵呵

这个东西不好说,要看实际情况才能定夺的。