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());%>
初めて 1、2 を出力します
リフレッシュ後に 3、4 を出力し、リフレッシュ後も増加し続けます。
Tomcat サーバーを再起動して再度開くと、1、2 が再出力されます
php
<?phpclass Count { private static $count = 0; // 类里定义静态属性 public static function getCount() { self::$count++; return self::$count; }}echo Count::getCount();echo "<br />";echo Count::getCount();
初めて 1、2 を出力しても、更新は引き続き行われます出力 1、2
比較の概要:
1. Java の静的属性は、Java 仮想マシンの実行中に常に存在し、すべて存在します。ユーザーは静的属性を共有します。
2. php の static 属性は 1 回のリクエスト (php ファイルの実行) に限り、再度リクエスト (php ファイルを実行) すると、static 属性はすぐに消えます。属性は再作成されるため、PHP の静的属性には共有の概念がなく、単一のリクエストに対してのみ有効です。
追加:
さらに、PHP には静的変数の概念もあります。静的属性はクラス内のものであり、静的変数はメソッド内のものです:
function count() { static $count = 0; // 方法里定义静态变量 $count++; return $count;}echo count();echo "<br />";echo count();echo "<br />";echo count();
最初に 1、2、3 を出力し、更新後も引き続き 1、2、3 を出力します。これは、PHP の静的変数が同じであることを示しています。静的属性としては、単一のリクエストに対してのみ有効です。
参考:
http://www.zhihu.com/question/35472851