,,详解php用static方法的原因

,,详解php用static方法的原因

本文与您分享了在PHP中使用静态方法的原因,以及相关的示例代码。供大家参考,有需要的朋友。

静态方法可以直接使用,无需实例化它们的类。

静态方法的效率高于实例化。静态方法的缺点是它不会自动销毁,而实例化的方法可以销毁。

静态方法和静态变量在创建后总是使用同一块内存,而使用实例会创建多个内存。

静态全局变量和普通全局变量,静态局部变量和普通局部变量,静态函数和普通函数有什么区别?本文将一一为您解答。

(1)全局变量(外部变量)的描述前面是static,构成静态全局变量。全局变量本身就是静态存储方法,静态全局变量也是静态存储方法。两者在存储方式上没有区别。两者的区别在于,非静态全局变量的范围是整个源程序。当一个源程序包含多个源文件时,非静态全局变量在每个源文件中都是有效的。但静态全局变量限制了它的作用域,即它只在定义该变量的源文件中有效,不能在同一源程序的其他源文件中使用。因为静态全局变量的范围被限制在一个源文件中,它们只能被那个源文件中的函数共享,所以它可以避免在其他源文件中引起错误。

(2)从上面的分析可以看出,把局部变量改成静态变量,改变了它的存储方式,也就是它的生存期。把全局变量改成静态变量,改变了它的作用域,限制了它的使用范围。

(3)3)静态函数的范围与普通函数不同,仅在本文档中。只在当前源文件中使用的函数应该描述为静态函数,应该在当前源文件中描述和定义静态函数。对于可以在当前源文件之外使用的函数,应该在一个头文件中声明,并且使用这些函数的源文件应该包含这个头文件。

如果能把一个类的方法定义成静态的,尽量定义成静态的,速度会提高近4倍。

实践是检验代码执行效率的唯一标准,所以我花了一点时间下班回家,做了一个小测试:

先测试代码(有不对的地方请指正):

测试环境:

/test # php -v

PHP 5.4.24 (cli)(构建时间:2014年1月19日21:32:15)

版权所有(c)1997-2013 PHP团队

Zend Engine v2.4.0,版权所有(c) 1998-2013 Zend Technologies

/test # uname -a

达尔文

内核版本13.1.0:太平洋标准时间2014年1月16日星期四19:40:37;

根:xnu-2422 . 90 . 20 ~ 2/RELEASE _ X86 _ 64 X86 _ 64

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)

类别staticTest {

公共函数测试(){

$ I=0;

$ I;

}

公共静态函数testStatic() {

$ I=0;

$ I;

}

}

$ start=microtime(true);

for($ I=0;10000000美元;$i ) {

$ test=new static test();

$ test-test();

}

echo (microtime(true) - $start)。\ n ';

$ start=microtime(true);

for($ I=0;10000000美元;$i ) {

static test:testStatic();

}

echo microtime(true)-$ start;

执行循环一千万次,结果如下:

/test # PHP staticTest.php

2.2938342094421

1.1871800422668

第二次执行的结果:

2.303295135498

1.1807670593262

经过多次执行,都在2.3和1.18左右。可以看出,虽然没有文中提到的效率提升那么恐怖,但是性能提升确实翻倍了。

因此,建议:

如果能把一个类的方法定义成静态的,尽量定义成静态的,速度会提高近一倍。

对于一个普通的php框架,里面还是有很多类和方法的。如果能做静态方法,最好用静态方法,效率更高。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括,七种PHP开发环境搭建工具
  • php高并发三种解决方法,php 高并发解决方案
  • php高并发三种解决方法,php 高并发解决方案,PHP解决高并发问题(opcache)
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么,php邮件发送的两种方式
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频,PHP跳转页面的几种实现方法详解
  • PHP购物车,php立即购买和购物车功能
  • PHP购物车,php立即购买和购物车功能,php实现购物车功能(上)
  • php读取pdf数据,php pdf读取
  • php读取pdf数据,php pdf读取,PHP中使用mpdf 导出PDF文件的实现方法
  • php网站判断用户是否是手机访问的方法有哪些,php如何判断用户是否登录
  • 留言与评论(共有 条评论)
       
    验证码: