表达式不允许作为字段默认值(在 oop 上)

Med*_*LEN 1 php oop

我有一个 connection.php 类,它只是在这里用于使用 PDO 对象连接到我的 MySQL 数据库的字符串。

然后,我在 query.php 页面中调用 connection.php 类,但是当我尝试从 connection.php 获取 PDO 对象时,出现错误“表达式不允许作为字段默认值”。(顺便说一句,我的 IDE 是 phpstorm)

这是connection.php

class connection
{
    private $host = "XXX";
    private $db = "XXX";
    private $login = "XXX";
    private $password = "XXX";

        public function conn()
        {
            try
            {
                $bddconn = new PDO('mysql:host='.$this->host.';dbname='.$this->db, $this->login, $this->password);
            }
            catch(PDOException $e)
            {
                echo "Connection failed " . $e->getMessage();
            }
            return $bddconn;
        }
}
Run Code Online (Sandbox Code Playgroud)

这是 query.php

class query extends connection
{
    public $bdd = parent::conn();

    public function checkUser($login, $password)
    {
        $query = 'SELECT login, password FROM user WHERE login = ? AND password = ?;';
        $req = $this->bdd->prepare($query);
        return $req->execute(array($login, $password));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,此时 IDE 在 query.php 第 2 行(public $bdd = parent::conn();)上显示错误“表达式不允许作为字段默认值”

我的代码有什么问题?

Max*_*rov 6

public $bdd = parent::conn();
Run Code Online (Sandbox Code Playgroud)

您不能从属性声明中的函数设置属性值

您必须在方法中初始化属性值,例如在构造函数中

class query extends connection
{
    public $bdd;

    public function __construct()
    {
        parent::__construct();
        $this->bdd = parent::conn();
    }
}
Run Code Online (Sandbox Code Playgroud)