php面向对象static静态成员函数的作用

其实我认为,php类里面的static成员函数,最大的作用是,可以把相关的函数整合在一起,并且防止了命名冲突,这点有些类似命名空间,但是这点比命名空间操作更友好。

实例对比,编写测试页面test.php 如下;

<?php
class str
{  
   static function test($x,$y,$z)
   {
      return $x+$y+$z;
   }
}
function test($x,$y,$z)
{
      return $x+$y+$z;
}
?>

 另建立一个页面,test2.php,代码如下:

<?php
$a=memory_get_usage();
include('test.php');
$str::test(1,2,3);//单独用这行代码或者单独用下面的一行代码,效果一样,占用的内容都一样的;
test(1,2,3);//此行代码和上面的代码可以同时运行,static静态成员函数是一个解决函数命名冲突的一个好办法; $b=memory_get_usage(); echo $b-$a;
//本机测试,上面输出结果为3032

下面的代码输出也都是3032,是一样的结果,
//代码块1:
$a=memory_get_usage();
include('test.php');
test(1,2,3);
$b=memory_get_usage();
echo $b-$a;
//代码块2:
$a=memory_get_usage();
include('test.php');
str::test(1,2,3);
$b=memory_get_usage();
echo $b-$a;
//代码块3如下:
$a=memory_get_usage();
include('test.php');
$b=memory_get_usage();
echo $b-$a;
//代码1和代码2和代码3的结果输出都是一样的,说明占用的内存是一样的,也就是在执行函数以后,静态成员函数,或者直接定义的函数都会被释放内存; ?>

 

posted @ 2013-03-04 16:51  qingq  阅读(301)  评论(0编辑  收藏  举报