gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 21:59:03 24 4
gpt4 key购买 nike

我有一个 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;
}
}

这是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();
}
}

关于php - 表达式不允许作为字段默认值(在 oop 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54417100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com