gpt4 book ai didi

php - OO PHP undefined variable

转载 作者:行者123 更新时间:2023-12-04 05:36:05 27 4
gpt4 key购买 nike

我正在尝试使用 OO PHP,但是当我尝试代码时,我收到错误消息,指出 dbhost、dbuser、dbpass 和 dbname 未定义。 Netbeans 还给我一个警告,说它们可能未初始化。
删除 static 关键字会给我一个错误,说 'Unexpected "$dbhost"'。
有谁知道我做错了什么?

<?php
class DatabaseManager {

private static $dbhost = 'localhost';
private static $dbuser = 'root';
private static $dbpass = '';
private static $dbname = 'app_db';

public static function getConnection(){
$dbconn;
try {
$dbconn = new PDO('mysql:host='.$dbhost,'dbname='.$dbname,
$dbuser, $dbpass);
} catch (PDOException $e) {
echo "Could not connect to database";
echo $e;
exit;
}
return $dbconn;

}

}
?>

最佳答案

您已将变量声明为静态。在 php 5.2 或更高版本中像这样引用它们:

$dbconn = new PDO('mysql:host='.self::$dbhost,'dbname='.self::$dbname,
self::$dbuser, self::$dbpass);

在 PHP 5.3 或更高版本中,如果您将它们从私有(private)设置为 protected ,您还可以使用:
$dbconn = new PDO('mysql:host='.static::$dbhost,'dbname='.static::$dbname,
static::$dbuser, static::$dbpass);

它们的行为相似,但如果您扩展类,静态关键字允许后期静态绑定(bind)。

关于php - OO PHP undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11915327/

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