Heim > Backend-Entwicklung > PHP-Tutorial > php static静态变量、java static静态变量的区别

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

WBOY
Freigeben: 2016-06-23 13:13:15
Original
1162 Leute haben es durchsucht

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());%>
Nach dem Login kopieren


第一次输出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();
Nach dem Login kopieren

第一次输出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();
Nach dem Login kopieren

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


参考:


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


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage