使用!取反的问题

今天把项目上传到服务器后出现的问题,改变状态(0.1)的切换.之前的代码如下:

   public function Something()

    {

        if (IS_AJAX) {

            $id = I('post.id');

            $arrt = I('post.attr');

            $isshow = $this->product->where("id='$id'")->getField($arrt);//获取状态(1 OR 0)

            if($this->product->where("id='$id'")->setField($arrt,!$isshow)){//设置状态为反

                $info = array('i' => 1, 'msg' => "改变状态成功");

            }else{

                $info = array('i' => 0, 'msg' => "改变状态失败");

            }

            $this->ajaxReturn($info);

        }

    }

以上代码在本地测试一切正常 但是到了服务器后将0设置为1正常,但是将1设置为0的时候SQL报错 SET is_top='' 也就是!$isshow可以将1取反为0 但是无法将0取反为1,结果为 ' '

后来不得已将$isshow使用三元赋值$isshow=$isshow==1?0:1;抛弃了之前的!$isshow的写法.bug解决了


疑问主要是?

为什么在linux环境下面 !$isshow取反可以由0取到1 但是1取到0则无法取出来呢?请大佬解答,新手一个谢谢大家.


慕码人2483693
浏览 456回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP