php static静态变量、java static静态变量的区别

WBOY
Release: 2016-06-23 13:13:15
Original
1138 people have browsed it

java的static静态属性:

<%!static class Count {    private static int count = 0;    public static int getCount() {        count++;                return count;    }}%><%out.print(Count.getCount());out.print("<br />");out.print(Count.getCount());%>
Copy after login


第一次输出1、2

刷新后输出3、4,一直刷新会一直递增。

如果重启tomcat server后再次打开,重新输出1、2


php的static静态属性

<?phpclass Count {    private static $count = 0; // 类里定义静态属性    public static function getCount() {        self::$count++;        return self::$count;    }}echo Count::getCount();echo "<br />";echo Count::getCount();
Copy after login

第一次输出1、2,刷新依然会输出1、2


对比总结:

1. java的static属性伴随着java虚拟机的退出而消亡,java虚拟机运行期间,static属性一直存在,所有用户共享该静态属性。

2. php的static属性只针对一次请求(一次php文件的执行),php文件执行完毕,该static属性也立刻消亡,再次请求(再次执行该php文件),会重新创建该static属性,所以php的static静态属性无共享概念,只对单次请求有效。


补充:

另外,php还有一个static静态变量的概念。静态属性是类里的东西,静态变量是方法里的东西:

function count() {    static $count = 0; // 方法里定义静态变量    $count++;    return $count;}echo count();echo "<br />";echo count();echo "<br />";echo count();
Copy after login

第一次输出1、2、3,刷新后依然输出1、2、3,说明php的静态变量和静态属性一样,也是只对单次请求有效。


参考:


http://www.zhihu.com/question/35472851


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template