+ -
当前位置:首页 → 问答吧 → 关于static 静态属性的问题

关于static 静态属性的问题

时间:2011-05-02

来源:互联网



代码如下
  1. class commandAction extends Action
  2. {
  3.         static protected $city_id;
  4.         static protected $city_name;
  5.        
  6.         public function _initialize()
  7.         {               
  8.       //判断传过来的城市id 不存在则读取默认配置         
  9.          if(empty($_GET['city_id']))
  10.         {             
  11.                 self::$city_id = !empty(self::$city_id)?self::$city_id:C("CITY_ID");
  12.                 self::$city_name =!empty(self::$city_name)?self::$city_name:C("CITY_NAME");                     
  13.         }
  14.         else
  15.         {
  16.                 self::$city_id = intval($_GET['city_id']);
  17.                 self::$city_name = $_GET['city_name'];
  18.         }       
  19.         
  20.         $this->assign('city_id',self::$city_id);
  21.         $this->assign('city_name',self::$city_name)
  22. }
复制代码
这是我做的一个公共类 给$city_id 和$city_name赋值后 为什么已经声明 static $city_id 和$city_name的值在刷新页面的时候会改变?

作者: lostemop   发布时间: 2011-05-02

你对静态变属性理解有误。静态属性的生命周期会存在到进程结束, 你既然已经刷新了网页, 第一次访问已经结束了。 你这里要用session或者cookie判断才行的。

作者: luofei614   发布时间: 2011-05-02

恩 谢谢~

作者: lostemop   发布时间: 2011-05-02