你学过C语言没有?这个跟C里的用法我觉得是一样的,static $mystr;只有在第一次调用函数的时候才初始化变量。所谓静态变量,就是在程序结束前不释放为其开辟的变量空间,初始化后,该变量一直存在,直到程序结束。所以,静态的,只初始化一次, 普通的变量,是在函数调用结束后就释放,静态的保留。可以参考C里面的用法,

解决方案 »

  1.   

    static $mystr;
    function myfunc() {  $mystr.="哈";
      echo $mystr."<br>\n";
    }你说这段代码结果不对吗? 结果当然不对了,
    因为这个静态变量没有定义在myfunc()函数中,对于myfunc()函数来说,static $mystr;是函数外部的变量,每次执行函数时,系统都会重新分配一个临时变量$mystr,而不是那个静态的$mystr;静态变量要在函数内部声明使用!ok!
      

  2.   

    static $mystr;                 ------------全局变量
    function myfunc() {  $mystr.="哈";                ------------局部变量
      echo $mystr."<br>\n";
    }