我在存储hasFreePackage1的数据库中有一个位类型值0
下面是我的代码,这是在我的本地主机上工作的,但每当我尝试在live服务器上上传时,这段代码就不工作了。

public function checkBitValue($hasFreePackage)
{
   $hasFreePackage= ($hasFreePackage== 0x01)
   if($hasFreePackage==1)
       return 1;
   else
       return 0;
}

因为live服务器是linux平台,我在本地运行windows。我的代码可以在Windows上运行,但不能在Linux上运行,所以我将代码改为此代码。
public function checkBitValue($hasFreePackage)
{
   $FreePackage= ($hasFreePackage== 0x01)
   if($FreePackage==1)
       return 1;
   elseif(ord($FreePackage==1))
       return 1;
   else
       return 0;
}

但还是不行。我使用的是yii 1.1php框架,php版本不同。

最佳答案

更简单的是:

{
    return $hasFreePackage ? 1 : 0;
}

或者更清楚地说:
{
    return $hasFreePackage ? TRUE : FALSE;
}

理由是:0为假;非零数字为真。
更好的方法是:记住这一点,不要费心检查真/假值与真/假!
注意:NULL''混淆了这样的逻辑。因此,“基本原理”只提到数字。

关于php - PHP中的MySQL位值不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43885925/

10-12 05:35