Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表达式不允许作为字段默认值(在oop上)_Php_Oop - Fatal编程技术网

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

Php 表达式不允许作为字段默认值(在oop上),php,oop,Php,Oop,我有一个connection.php类,它在这里用于使用PDO对象连接MySQL数据库的字符串 然后,我在query.php页面中调用connection.php类,但是当我尝试从connection.php获取PDO对象时,我得到一个错误“Expression is not allowed as field default value”。(顺便说一句,我的IDE是phpstorm) 这里是connection.php class connection { private $host =

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

然后,我在query.php页面中调用connection.php类,但是当我尝试从connection.php获取PDO对象时,我得到一个错误“Expression is not allowed as field default value”。(顺便说一句,我的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;
        }
}
下面是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));
    }
}
但是,此时IDE在query.php第2行(public$bdd=parent::conn();)上显示错误“Expression is not allowed as field default value”

我的代码有什么问题

public $bdd = parent::conn();
不能从属性声明中的函数设置属性值

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

class query extends connection
{
    public $bdd;

    public function __construct()
    {
        parent::__construct();
        $this->bdd = parent::conn();
    }
}
不能从属性声明中的函数设置属性值

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

class query extends connection
{
    public $bdd;

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

正如它所说的,不能将表达式(parent::conn()是一个表达式)作为默认属性值。改为在
\uuu construct
中调用它……您是否尝试用谷歌搜索该错误消息?如果有,请在您的案例中链接,这是最有帮助的;)它可能与它所说的内容重复,不能将表达式(parent::conn()是一个表达式)作为默认属性值。改为在
\uuu construct
中调用它……您是否尝试用谷歌搜索该错误消息?如果有,请在您的案例中链接,这是最有帮助的;)可能重复的