不确定如何提出这个问题.但我使用PhpStorm作为我的IDE.
我创建了一个将处理数据库检索和操作的类.在其中我有这个连接方法:
private function connect() {
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->db;
$options = [
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
];
try {
$this->conn = new PDO($dsn, $this->user, $this->pass, $options);
} catch(PDOException $e) {
$this->error = $e->getMessage();
}
}
该方法工作正常,但当我在其他方法中使用$this-> conn时,PhpStorm不会将$this-> conn识别为PDO对象.
使用此方法:
private function insert() {
$insert = $this->conn->prepare($sql);
$insert->execute();
}
PhpStorm说它无法找到准备或执行的方法.
如果我将$this-> conn传递给方法并在参数上使用PHPDoc块,它可以正常工作:
/**
* @param $conn pdo
*/
private function insert($conn) {
$insert = $conn->prepare($sql);
$insert->execute();
}
我很好奇它为什么不让我使用$this-> conn?虽然将$this-> conn传递给该方法的代码并不多,但似乎有点多余.
关于我需要采取哪些不同的想法?