ASP.NET中的静态变量让我措手不及.然后我变得吓坏了,因为这意味着要么我对网络世界中的静态变量有一个基本的误解,要么ASP.NET不像我想的那样行事.
所以在ASP.NET中
public class MyClass { public static bool myVar = true; }
如果ASPUserA设置MyClass.myVar = false,系统上的每个其他用户都将遇到这些更改.所以,ASPUserB会有myVar = false.我的来源:http://www.foliotek.com/devblog/avoid-static-variables-in-asp-net/
class MyClassPHP { public static $myVar = false; }
如果PHPUserA设置MyClass :: $myVar = true这是否意味着系统中的每个用户都会遇到这些更改?
谢谢.
经过进一步研究,我这样做了;
class MyClassPHP { public static $myVar = 0; }
MyClassPHP::$myVar++; echo MyClassPHP::$myVar;
它总是1.无论我多少次刷新或同时连接…… WOHHH这是一个很好的结论,否则我被搞砸了!
ASP.NET更新
经过进一步研究和测试,我发现了这一点.
public partial class MyPage : System.Web.UI.Page { public static int myInt = 0; protected void Page_PreInit(object sender,EventArgs e) myInt++; } }
在浏览器(Firefox和Chrome)之间,当我刷新页面时,myInt逐渐变高.所以如果你的班级是静态的,这并不重要.只有你有静态变量才有意义.它们适用范围广泛.