热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在课堂上找不到的方法

如何解决《在课堂上找不到的方法》经验,为你挑选了2个好方法。

我正在进行登录功能,但遇到了一个我无法弄清楚的错误.

这是我的Model Login类:

class Login {

    private $username;
    private $password;
    private $cxn;       //database object

    function __construct($username,$password)
    {
        //set data
        $this->setData($username, $password);
        //connect DB
        $this->connectToDB();
        // get Data 
    }

    function setData($username, $password)
    {
        $this->username = $username;
        $this->password = $password;
    }

    private function connectToDB()
    {
        include 'Database.php';
        $cOnnect= '../include/connect.php';
        $this->cxn = new database($connect);  
    }

    function getData()
    {
        $query = "SELECT * FROM anvandare WHERE anvandarnamn = '$this->username' AND losenord ='$this->'password'";
        $sql = mysql_query($query);

        if(mysql_num_rows($sql)>0)
        {
            return true;
        }
        else
        {
            throw new Exception("Användarnamnet eller Lösenordet är fel. Försök igen.");
        } 
    }

    function close() 
    {
        $this->cxn->close(); //Here is the error it says "Method 'close' not found in class
    }
}

最后一个函数给出错误" 方法'关闭''在类中找不到 "," 在主题类中找不到引用方法 ".

这是我的数据库类:

class Database {

    private $host;
    private $user;
    private $password;                  
    private $database;

   function __construct($filename)
   {       
       if(is_file($filename)) include $filename;
       else throw new exception("Error!");

       $this->host=$host;
       $this->user=$user;
       $this->password=$password;
       $this->database=$database;

       $this->connect();
    }

    private function connect()
    {
        //Connect to the server
        if(!mysql_connect($this->host, $this->user, $this->password))
        throw new exception("Error, not connected to the server.");

        //Select the database
        if(!mysql_select_db($this->database))
        throw new exception("Error, no database selected");             
    }

    function close()
    {
        mysql_close();
    }
}

这些途径是正确的,所以不是这样.可能是什么错误?



1> LazyOne..:

PhpStorm无法弄清楚你的$this->cxn领域是什么类型.您可以通过简单的PHPDoc注释提供typehint来提供帮助:

/** @var Database */
private $cxn;       //database object



2> 小智..:

此提示也有助于PHPstorm正确识别方法

如果您有这样的代码:

foreach( $myEntity as $entity ) {  
  $entity->myValidMethod();
}  

只需添加此提示:

/* @var $entity \My\Name\Space\Path\MyEntity */
foreach( $myEntity as $entity ) {  
  $entity->myValidMethod();
}  

感谢http://mossco.co.uk/symfony-2/how-to-fix-method-not-found-in-class-orange-warning-in-phpstorm/


推荐阅读
author-avatar
垚垚8858
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有