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的结果输出都是一样的,说明占用的内存是一样的,也就是在执行函数以后,静态成员函数,或者直接定义的函数都会被释放内存; ?>