PHP中的MySQL位值不';行不通

PHP中的MySQL位值不';行不通,php,mysql,yii,Php,Mysql,Yii,我在存储1或0的数据库中有一个位类型值hasFreePackage 下面是我的代码,这是在我的本地主机上运行的,但每当我尝试在live server上上载时,这段代码都不起作用 public function checkBitValue($hasFreePackage) { $hasFreePackage= ($hasFreePackage== 0x01) if($hasFreePackage==1) return 1; else return 0;

我在存储
1
0
的数据库中有一个位类型值
hasFreePackage

下面是我的代码,这是在我的本地主机上运行的,但每当我尝试在live server上上载时,这段代码都不起作用

public function checkBitValue($hasFreePackage)
{
   $hasFreePackage= ($hasFreePackage== 0x01)
   if($hasFreePackage==1)
       return 1;
   else
       return 0;
}
因为live server是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.1 php框架,php版本不同。linux是5.2.0,本地(windows)是5.7,更简单:

{
    return $hasFreePackage ? 1 : 0;
}
或者更清楚地说:

{
    return $hasFreePackage ? TRUE : FALSE;
}
理由是:0是错误的;非零数字是真的

更好的方法是:记住这一点,不要麻烦检查真/假值和真/假值


注意:
NULL
'
会像这样混淆逻辑。因此,“基本原理”只涉及数字。

自PHP5.2以来,发生了很多变化。已经超过10年了。我猜这是版本问题。没有PHP5.7是的,我想是一样的,但是托管公司有这个旧版本。然后我建议你考虑寻找一个新的主机,从那时起就有很多漏洞和bug被修复了。如果主机没有更新版本的PHP,我个人不会认真对待主机,或者至少让你自己选择。好的,我会让他们更新版本,如果他们不能,我会转移到新主机。这一行语句对你的功能来说不够吗<代码>返回($hasFreePackage==0x01)。我并不是说这将解决你所面临的问题。我只是从逻辑的角度说。