加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

浅析PHP的静态成员函数效率更高的理由

发布时间:2022-07-01 16:22:16 所属栏目:PHP教程 来源:互联网
导读:很多php开发人员都知道, 使用类的静态成员函数效率比类的普通成员函数的要高,本文从应用层次分析这个问题 下面是一个范例: ?php // php静态方法测试 header(Content-Type: text/html; charset=utf-8); $this - var2 = bbbbbbbbbbbbbbbb; } public static
  很多php开发人员都知道, 使用类的静态成员函数效率比类的普通成员函数的要高,本文从应用层次分析这个问题
 
  下面是一个范例:
 
  <?php // php静态方法测试
  header('Content-Type: text/html; charset=utf-8');
            $this -> var2 = 'bbbbbbbbbbbbbbbb';
           }
       public static function secho1()
      {
           echo self :: $var1 . '<hr />';
           }
       public function secho2()
      {
           echo $this -> var2 . '<hr />';
           }
       public function secho3()
      {
           echo 'cccccccccccccc<hr />';
           }
       }
   xclass :: secho1();
   xclass :: secho3();
   echo "------------------------------<br />";
   $xc = new xclass();
   $xc -> secho1();
   $xc -> secho2();
   ?>
  认真看上面的范例,会发现一个有趣的地方,secho1()定义为静态方法后, 在动态类的对像实例中仍可以引用为动态方法,而secho3()也可以被当作静态成员函数,从这个层面,不难理解为什么说静态成员函数比动态的快。
 
 
  但调用动态类则不同,它要以这个类结构作为样本,在内存中重新生成一个对象实例,所以多了一个过程,这对于简单的类来说,可能不算什么,但对于复杂的类来说这是明显影响效率的。
 
  有人会担心,使用静态方法会不会造成内存占用过多,其实从上面分析可以知道,你不声明静态方法,系统依然会把成员当成静态,因此对于一个完全静态方法的类和一个完全动态但没声明实例对象的类占用内存几乎是一样的,所以对于比较直接的逻辑,都建议直接用静态成员方法,当然,一些复杂或对像化明显的逻辑,如果完全用静态类也不是没可能,但那样就失去类的意义了,如果这样,何必OOP,按用途,静态方法特别适用于MVC模式的逻辑类中。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读