你从C++转过来的么?
php是弱类型,0也表示false要完全判断就要用===
$a = 0
if ($a === false) ...php用于网络,网络传递基本都是字符串(字节型也是字符串之一),根本就无数值类型
所以用的时候,必要的话就做转换

解决方案 »

  1.   

    问题就在这。其实我是用了一个框架,经过框架输出widget后就这样了,框架是个小众框架,总不能让别人帮我去看框架源代码。我就是想知道哪些操作会影响到session,目前我检查框架里的widget代码只有ob_start之类的缓存函数,并没有涉及session,很无奈。
      

  2.   


    不是C++转来的
    session并不会隐式转换值,而且就算我用字符型的0,依旧为转成bool。
      

  3.   

    有些框架会自己session_start的,找找有没有
      

  4.   

    很显然,你的框架对 $_SESSION['uid'] 做了判断、处理
    既然是“小众”的,你就慢慢找吧
      

  5.   


    借版主的仙气,再查一遍源码就找到问题了/*原框架中为了字符串过滤有下面这一句,stripSlashes会把值为0的Session Key转换成Bool,删除此句就正常*/
    $_SESSION  = $this->stripSlashes($_SESSION);30分给版主,认真回答问题的朋友也都给了5分。感谢大家,结贴。