PHP静态变量如果在声明中用表达式的结果对其赋值会导致解析错误

解决方案 »

  1.   

    function make_list($parent,$all = null,$depth = 0){
      static $tasks = $all;
    }你没注意到吗?如果仅有 make_list 函数定义,并无 make_list 函数的执行
    就已经报错了 Parse error: syntax error, unexpected '$all' (T_VARIABLE)
    由此可知:静态变量只在程序加载时就创建了的,此时程序尚未执行,动态变量还未创建
      

  2.   

    因为Static是在编译时进行初始化的