Maison > développement back-end > tutoriel php > php static静态变量、java static静态变量的区别

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

WBOY
Libérer: 2016-06-23 13:13:15
original
1161 Les gens l'ont consulté

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());%>
Copier après la connexion


第一次输出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();
Copier après la connexion

第一次输出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();
Copier après la connexion

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


参考:


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


source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal