`
OrangeHolic
  • 浏览: 260930 次
  • 来自: 北京
社区版块
存档分类
最新评论

PHP编码的几个最佳实践

    博客分类:
  • PHP
 
阅读更多
继续说说PHP的几个编码优化

1.用逗号连接echo字符串
$name='orange';
$address='BeiJing';
echo 'Hi,'.$name.'! Welcome to '.$address;//慢
echo 'Hi,',$name,'! Welcome to ',$address;//快,建议方式

原因可以查看两者的opcode,用逗号的方式和用点号方式的opcode如下

2.使用require还是require_once
   老问题了,Lerdof N年前就提出来了,建议用require,因为require_once发起少量的stat调用,我们可以通过ab来测试一下效率
#a.php文件
require_once('ClassA.php');
require_once('ClassB.php');
require_once('ClassC.php');
echo 'end';

测试ab -c 10 -n 10000 http://localhost/orange/a.php 同时10个请求共请求10000次,结果如下:

#b.php文件
require('ClassA.php');
require('ClassB.php');
require('ClassC.php');
echo 'end';

同样测试测试ab -c 10 -n 10000 http://localhost/orange/b.php 同时10个请求共请求10000次,结果如下:

增加了近20的并发量!

3.提前计算循环长度
如下代码
$items=array(0,1,2,3,4,5,6,7,8,9);
for($i=0;$i<count($items);$i++)
{
     $temp=$items[$i]*$items[$i];
}

循环是如何执行的?
* $i初始化0,调用count($items)检测,平方;
* $i等于1,调用count($items)检测,平方;
* $i等于2,调用count($items)检测,平方;
* ...........................
count($items)执行了count($items)遍!所以我们提前计算循环长度,实验对比
#a.php文件
$start=microtime(true);
$items=array_fill(0,100000,'orange');
for($i=0;$i<count($items);$i++)
{
     $temp=$items[$i].$items[$i];
}
echo microtime(true)-$start;

执行结果:

#b.php文件
$start=microtime(true);
$items=array_fill(0,100000,'orange');
$count=count($items);
for($i=0;$i<$count;$i++)
{
     $temp=$items[$i].$items[$i];
}
echo microtime(true)-$start;

执行结果:

4.使用foreach、for、while循环数组
老问题了,不解释,在此就上一张表,看表后,你自己选择吧!
10万元素数组PHP循环执行平均时间
foreach    0.0078毫秒
while   0.0099毫秒
for   0.0105毫秒

5.勿要追求极致的面向对象
面向对象虽然有各种好处,但效率损失是个硬伤。
#a.php文件
/**
*  属性private,get/set齐全
*/
class Student{
    private $name;
    private $age;
    public function setAge($age){
        $this->age = $age;
    }
    public function getAge(){
        return $this->age;
    }
    public function setName($name){
        $this->name = $name;
    }
    public function getName(){
        return $this->name;
    }
}

$student=new Student();
$start=microtime(true);
for($i=0;$i<100000;$i++){
    $student->setAge($i);
}
echo microtime(true)-$start;

执行时间

#b.php文件
/**
*  属性public,直接赋值属性
*/
class Student{
    public  $name;
    public  $age;
}
$student=new Student();
$start=microtime(true);
for($i=0;$i<100000;$i++){
    $student->age=$i;
}
echo microtime(true)-$start;


效率提升至3000%..............................
























  
  • 大小: 18.8 KB
  • 大小: 26.5 KB
  • 大小: 26.6 KB
  • 大小: 2.7 KB
  • 大小: 2.5 KB
  • 大小: 2.6 KB
  • 大小: 2.8 KB
分享到:
评论

相关推荐

    PHP编码规范,chm电子书

    《PHP编码规范》涵盖以下几个关键方面: 1. **命名约定**:包括类名、函数名、变量名的规则,通常推荐采用驼峰命名法(CamelCase)和下划线命名法(snake_case),并规定了常量、类、接口、函数、变量等不同元素的...

    百度PHP编码规范1

    综上所述,百度的PHP编码规范旨在通过规范化的编码实践,提高代码质量,降低维护成本,并确保在处理用户数据时遵循最佳的安全实践。遵循这些规范,开发者可以编写出更易于阅读、理解和维护的PHP代码,同时增强系统的...

    基于PHP的五笔速查工具 php版.zip

    7. **编码规范与性能优化**:为了保持代码的可读性和高效性,开发者应遵循PHP的最佳实践和编码标准,例如PSR(PHP FIG的编码规范)。此外,使用索引优化数据库查询,缓存查询结果,以及合理使用数据库连接池等方法...

    PHP编码规范(第一版).rar

    PHP编码规范由开花石头编写的《PHP编码规范(第一版)》是一本非常实用的资源,旨在帮助开发者遵循最佳实践,提升代码质量。这本书采用CHM(Compiled Help Manual)格式,是Windows系统下的帮助文档格式,便于用户快速...

    深入PHP:面向对象、模式与实践(第3版)第13到16章

    在深入PHP:面向对象、模式与实践(第3版)的第13到16章中,作者为我们揭示了PHP编程中的几个关键概念和最佳实践。以下是对这四个主题的详细解析: 13、数据库模式: 数据库模式是设计数据库结构的一种方式,它描述...

    第04篇:XSS三重URL编码绕过实例1

    跨站脚本攻击(XSS)是一种常见的网络安全漏洞,它允许攻击者在受害者的浏览器上执行恶意脚本,从而窃取敏感信息、操纵用户界面或...时刻关注安全最佳实践,确保代码的安全性,才能有效地对抗XSS和其他类型的网络攻击。

    php实现文件编码批量转换

    6. 文件编码转换过程中的最佳实践: 在实际编码转换过程中,建议: - 首先确定并验证文件的原始编码。 - 确保目标编码正确无误。 - 进行转换前做好文件的备份,以防转换失败导致数据丢失。 - 在转换过程中详细记录...

    php编码规范

    在PHP编码规范中,主要涉及以下几个方面: 1. **命名规则**:变量、函数、类、常量等应使用有意义的驼峰式命名(首字母大写,其余单词首字母小写),如 `$exampleVariable`,`functionName`,`ClassName`,`...

    class.phpmailer.php

    3. 反垃圾邮件策略:遵循邮件发送的最佳实践,避免触发垃圾邮件过滤器。 4. 错误处理:添加适当的错误处理机制,以便在发送失败时捕获并处理错误。 总的来说,PHPMailer是一个功能强大、易用的邮件发送类库,通过它...

    php-login-user-manage.zip_/manage/login.php_Free!_acconte_php lo

    10. **最佳实践**:在开发这样的系统时,应遵循安全编码的最佳实践,如使用预处理语句防止SQL注入,对用户输入进行严格过滤,以及定期更新依赖库以修复已知的安全漏洞。 了解这些知识点后,开发者可以基于这个免费...

    PHP利用纯真IP数据库在本地实现IP地址信息查询(无乱码)

    在描述中提到的“2020.08.28日出炉的代码”,暗示了这是一个相对较新的实现,可能考虑了现代PHP的最佳实践,例如错误处理、性能优化以及编码规范。 总结来说,这个知识点涵盖了以下几个方面: 1. PHP基础与网络编程...

    PHP动态网站开发实践教程课件第章.pptx

    - **Web安全**:遵循最佳实践,如输入验证、输出编码,以及定期更新和修补系统,以抵御XSS、CSRF等其他Web安全威胁。 这些内容构成了PHP动态网站开发的基础,掌握这些知识可以帮助开发者有效地创建、维护和优化...

    基于PHP的fanqie shop番茄社区多门店网店系统 php源码.zip

    以上只是基于PHP的fanqie shop网店系统可能涉及的一些关键点,实际系统可能还包括更多的细节和特性,如促销活动管理、评价系统、售后服务等,这些都需要开发者深入了解PHP和Web开发的最佳实践,才能构建出稳定、高效...

    Dash版PHP中文离线文档

    7. **最佳实践**:文档中可能会包含一些编码规范和最佳实践,帮助开发者编写更高效、更可维护的代码。 8. **评论区**:这是一个独特的功能,允许用户在特定知识点下方留言,分享自己的见解,提问或解答他人的问题,...

    基于PHP的福彩3D开奖调用插件v1.0源码.zip

    6. **安全性**:考虑到可能存在的安全风险,如SQL注入或XSS攻击,插件应遵循最佳实践,例如使用预编译语句防止SQL注入,对用户输入进行过滤和转义以防止XSS。 7. **版本控制**:源码中的“v1.0”表示这是该插件的第...

    PHP实例开发源码——雪晖PHP广告管理系统XHAD (utf-8).zip

    在PHP编程中,广告管理系统通常包括以下几个核心模块: 1. **用户管理**:用户注册、登录功能,可能还包括角色权限管理,如管理员和普通用户的不同权限设定。 2. **广告位管理**:定义网站上可以放置广告的位置,...

    Phpcms_编码规范等开发文档

    PHP编码规范包括以下几个方面: 1. **代码标记**:PHP代码应使用`&lt;?php ?&gt;`或`&lt;? ?&gt;`进行界定,但为了增强程序的兼容性,建议使用`&lt;?php ?&gt;`,因为未来的PHP版本可能会逐步淘汰简写形式`&lt;? ?&gt;`和`$variablename?&gt;`...

    PHP mb_convert_encoding 获取字符串编码类型实现代码

    通过深入研究手册内容,开发者可以更准确地了解字符编码转换的原理和最佳实践。 4. 确保在处理文本之前和之后正确设置内部字符编码。在脚本执行之前,可以使用 mb_internal_encoding('UTF-8') 将PHP内部使用的字符...

    PHP+MySQL编程实例:PHP+MySQL编程实例.rar

    9. 设计模式和最佳实践:了解面向对象编程,应用MVC(模型-视图-控制器)架构,以及遵循良好的编码规范和设计模式。 10. 高级话题:如缓存技术(例如,使用memcached或Redis),性能优化,以及数据库设计原则,如...

    PHP实例开发源码-盘锦DJ舞曲网 PHP版 GBK.zip

    【PHP实例开发源码-盘锦DJ舞曲网 PHP版 GBK.zip】是一个包含PHP编程语言的源代码项目,主要用于构建一个在线DJ舞曲分享网站...通过研究和实践这个项目,开发者可以提升自己的PHP编程技能,并了解实际项目中的最佳实践。

Global site tag (gtag.js) - Google Analytics