我在存储hasFreePackage
或1
的数据库中有一个位类型值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/