PDO 作为构造函数参数

PDO as constructor argument

我有以下 class:

class UserRepository {

    private $conn;

    public function __construct($conn) {
        $this->$conn = $conn;
    }

    //Methods omitted

}

我使用以下方法创建一个 UserRepository 对象:

$conn = new PDO("mysql:host=".DB_SERVER.";dbname=".DB_DATABASE, DB_USERNAME, DB_PASSWORD);
$userRepository = new UserRepository($conn);

我在 UserRepository 的构造函数中遇到以下错误:

Recoverable fatal error: Object of class PDO could not be converted to string

我做错了什么?

您的构造函数使用该变量作为动态属性名。因此它会尝试将其转换为字符串。 $this->{$conn} = $conn 对比 $this->conn = $conn.

    public function __construct($conn) {
        $this->conn = $conn;
    }