为什么PHP仍然显示我的方法为Undefined


Why is PHP still showing my method as Undefined?

我正在尝试将用户保存到数据库中,除了一个问题之外,一切似乎都很好

为什么每次我尝试调用save_user(…)时都会收到

Fatal error: Call to undefined function check_user() in ... on line 47

连接类别:

    class Db_connect {
    function __construct(){
    }
    function __destruct(){
    }
    function connect(){
        $connect = MySQL_Connect ( "host", "user", "pass")  or Die("Couldn't connect to DB");
        MySQL_Select_Db("db") or Die("Couldn't find database db");
        mysql_query("SET NAMES 'utf-8'");
        return $conect;
    }
    function close(){
        MySQL_close();
    }
}

功能类

class Db_functions {
    private $db;
    function __construct(){
        $this->db = new Db_connect();
        $this->db->connect();
    }
    function __destruct(){
    }
    public function check_user($email,$pass){
        $result = "SELECT email FROM user WHERE email='$email' AND pass='$pass'";
        $sql = mysql_query($result);
        if ( mysql_num_rows($sql) > 0 ) {
            return true;
        }
        return false;
    }
    public function save_user($id,$name,$pass,$email,$country){
        $result = "INSERT INTO user(id,name,pass,email,country) VALUES('$id','$name','$pass','$email','$country')";
        if ( check_user($email,$pass) ) { //here's line 47
            return false;
        }
        if ( mysql_query($result) ) {
            return true;
        }
        return false;
    }
}

我真的很累了:D我找不到任何错误的

您正在以的身份访问类成员

if ( check_user($email,$pass) ) {

这是不正确的,你需要做

if ( $this->check_user($email,$pass) ) {

这需要在代码中进行更正。

http://www.php.net/manual/en/language.oop5.visibility.php