我的方法没有';不起作用;t返回一个数组


My method doesn't work and doesn't return an array

我有一个名为getPerso的方法,它返回一个包含我的成员的所有信息的数组。方法如下:

public function getPerso($id)
{
    if(is_int($id))
    {
        $req = $this->_db->prepare('SELECT * FROM personnages WHERE id = :id');
        $req->execute(array(
            'id' => $id));
        $donnee = $req->fetch();
        $req->closeCursor();
        return $donnee;
    }
}

它只需要一个int作为参数。我使用$_SESSION['id'],它包含参数登录成员的id。但是,当我执行这个代码时:

$donnee = $manager->getPerso($_SESSION['id']);
var_dump($donnee, $_SESSION['id']);

我的$donnee变量为空。以下是我从var_dump:中得到的内容

NULL字符串(1)"4"

我的$donnee变量应该包含一个数组,其中包含成员的所有信息。希望有人能解决问题。

使用is_numeric()而不是is_int()。如果将数字作为字符串传递,is_int()将返回false