调用未定义的函数

时间:2014-05-19 10:41:49

标签: php json function class pdo

我目前正在开发一个应用程序,它从数据库中提取JSON,然后将新用户添加到数组并将其作为JSON返回。当我尝试运行我的addFriend()函数时,我得到了" 调用未定义函数userExists()"错误。我似乎无法弄明白为什么。

public function userExists($user = null){
        if(is_numeric($user)){
            $test = $this->_db->get('members', array('ID', '=', $user));
            if($test->count()) {
                return true;
            }
        }
        return false;
}

public function addFriend($friend){
        if(is_numeric($friend)){
            if( userExists($friend) ){
                if(hasFriends()){
                    $friendsList = getFriends();
                    $friendsList[] = $friend;
                }else{
                    $friendsList = array($friend);
                }

            }
        }
        return false;
    }

我正在使用我调用查询并建立连接的PDO类,这似乎工作正常。 count()只返回rowCount()

我知道它会成为我错过的小事,但我们将不胜感激!

1 个答案:

答案 0 :(得分:2)

如果你在课堂上,请替换

if( userExists($friend) ){

if( $this->userExists($friend) ){

基本上要引用类中的任何内容,将$this->附加到您正在调用的任何内容,属性,函数等。

它告诉班级实际使用什么,即它自己的功能或它自己的属性。

在那个注释中,查看代码的其余部分,而不是使用变量,我建议创建和使用类的属性。

例如,您的$friendsList函数中有一个名为addFriend的变量。使用名为$friendList的属性声明类可能更好:

class someThing{

public $friendlist;

// etc
}

然后在您的函数中,添加或删除该属性中的数据,如下所示:

        if( userExists($friend) ){
                $this->friendsList = getFriends();
                $this->friendsList[] = $friend;
            }else{
                $this->friendsList = array($friend);
            }

通过这种方式,一旦您分配了值,它们就会存在,并且可以根据需要使用任何其他调用或函数。