php中的变量范围

时间:2014-03-23 08:24:16

标签: php class

我在php中使用了static method的简单类,检查记录是否存在然后返回记录,否则返回false

  class db{

      public static function isRecord($q,$parameters){  
        $a=self::getinstance()->prepare($q);
        $a->execute($parameters);
        $r=$a->fetch(PDO::FETCH_NUM);
        if($r[0]) return $r[0]; 
        if(!$r[0] || $r[0]==0 ) return false;
     }
  }

使用

  $e=db::isRecord("SELECT itemdesc FROM temptable WHERE invuser=? ",array($invuser));

按预期返回$e

但如果我使用像这样的简单功能

function canEnterincart(){
    return db::isRecord("SELECT itemdesc FROM temptable WHERE invuser=? ",array($invuser));
}
即使记录存在,

var_dump(canEnterincart())也始终返回false

代码有问题吗?

1 个答案:

答案 0 :(得分:0)

您应该将变量作为方法的参数传递,如下所示:

function canEnterincart($invuser){
    return db::isRecord("SELECT itemdesc FROM temptable WHERE invuser=? ",array($invuser));
}