PHP效率开发--数组中的引号
来源:互联网 发布:2型补偿网络 编辑:程序博客网 时间:2024/06/05 10:39
PHP效率开发--数组中的引号
数组概述
数组,作为一种简单的线性数据结构,在程序开发的过程中时常会被用到。PHP将数组分为两类:数值数组和关联数组。
数值数组和大多数其它语言的使用方法一样:在一对中括号中加上一个数字表示要存取的值在数组中的存放位置。例如:$array[0] = ”value”。
关联数组是PHP的一大亮点,它通过使用字符串来索引数组,例如在某个水果销售系统中,我们要为几种水果指定价格,于是我们可以这样写:$price[‘Apple’] = 1.8; $price[‘Banana’] = 4.6; $price[Pear] = 2.8; $price[Other] = 0.5; 。
问题出现
从上面的例子可以看出关联数组使得我们的代码更加清晰,同时在很大程度上提高了开发效率。细心的可能会发现在我们举例关联数组时,前两个数组中(Apple和Banana)的字符串索引我们加上了单引号,而后面两个(Pear和Other)则没有!是的,为了提高开发效率,PHP允许我们在使用关联数组时不必给数组的索引字符串加上引号。这确实给我们带来了很大的方便:首先PHPer不必在每次写数组时都要记得加上烦人的引号;其次可以避免引号配对问题。不过这带来了另外的一个问题――性能。在接下来的文章中我们将通过例子来解释这个现象。
性能测试
性能和效率之间似乎总是呈反比的,有时为了效率我们必须牺牲性能,有时有不得不反过来,不过在这里我们应该选择哪个呢?先看下面的代码:
<?
//定义一个存放临时数据的文件
$fp=fopen('delete.txt','w');
//初始化数组
$array=array('name'=>'value');
//定义循环次数
$LOOPTIMES=100;
//得到初始时间
$t0=number_format(microtime(true),10,'.','');
//循环显示没有使用引号的数组
for($i=0;$i<$LOOPTIMES;$i++)
fputs($fp,$array[name]);
$t1=number_format(microtime(true),10,'.','');
$rs1=$t1-$t0;
//循环显示使用了引号的数组
for($i=0;$i<$LOOPTIMES;$i++)
fputs($fp,$array['name']);
$t2=number_format(microtime(true),10,'.','');
$rs2=$t2-$t1;
// 显示结果
echo "$t1 - $t0 = ".$rs1." ";
echo "$t2 - $t1 = ".$rs2." ";
fclose($fp);
?>
上面的代码分别循环100次使用大引号的关联数组和不代引号的关联数组,最后输出它们所消耗的时间。下图显示了允许程序10次后的结果:
在10次的测试中,使用引号所花费的平均时间为0.003,而没使用引号的平均时间为0.032911,大约是前者的10倍!
总结
从上的例子中可以看出:不使用引号的关联数组所带来的优点比较起来其,在关联数组中使用引号将使得程序的性能得到很大的提升。而且由于有了像Zend这样优秀的PHP集成开发环境,它不仅能为PHP字符串自动添加引号,而且配备了出色的代码检查功能。这使得我们更没有理由继续使用没有引号的关联数组。
- PHP效率开发--数组中的引号
- PHP数组中的引号和效率
- PHP效率计:从引号开始(单引号、双引号效率区别)
- php的反引号以及双引号中的反引号
- PHP数组下标加引号的理解
- php开发中的坑,php数组指针
- sql语句中的数字不需要用引号,会影响效率
- php中的“魔术引号”- magic quotes
- php 中的字符串String 与引号
- 总结3:PHP中的魔术引号
- PHP遍历数组效率分析
- 开发中的效率工具
- 关于PHP数组索引加不加引号的区别
- php 中的单引号 双引号 反引号的作用
- PHP数组下标的效率探讨
- php魔术引号
- PHP 魔术引号
- 【php】引号的用法
- j2me手机游戏编程第一课(开发环境搭建和第一个MIDlet程序 视频)
- [学习笔记]jsp+javaBean 实现图片的上传
- 视频网站应当向政府政策靠拢
- [链接] 深入编程内幕--Visual C++
- 在状态栏显示信息
- PHP效率开发--数组中的引号
- Improve Your Writing Skills
- System.Diagnostics命名空间里的Debug类和Trace类的用途
- ASP.NET技巧:將datagrid控件內容輸出到excel文件
- ASP.Net 2.0 发送邮件的代码
- 在Visual C#中访问不同数据库
- ASP.net 2.0发送邮件实例,本人已经测试通过,贴出代码
- [链接]位图文件结构
- 思维转变的重要性