gpt4 book ai didi

php - 如何在 PHP 类中使用外部变量?

转载 作者:可可西里 更新时间:2023-11-01 00:24:29 25 4
gpt4 key购买 nike

我有这个...的config.php

$dbhost = "localhost";

我希望能够在类中使用 $dbhost 变量。

用户类.php

include 'config.php';    
class User {
private $dbhost = ???
}

还有其他几个类似的问题,但它们是针对其他一些特定用途的,我想这只是一个基本的问题,我在网上找不到任何其他关于它的信息。

更新:哇,感谢大家的帮助。这个网站的新手,但我可能会留下来并尽我所能回馈社会。

最佳答案

你可以使用 global variable , 定义一个 constant会更好,但最好使用 setter/getter 方法。当您使用一个类时,它使用的任何外部资源都应该传递给它。此设计模式称为 dependency injection如果您想进一步研究它。

在这个例子中,我将 setter 和 getter 合并到一个方法中,并包括在您第一次创建实例时使用构造函数设置值的能力:

class User
{
private $host = null;

public function host($newHost = null)
{
if($newHost === null)
{
return $this->host;
}
else
{
$this->host = $newHost;
}
}

function __construct($newHost = null)
{
if($newHost !== null)
{
$this->host($newHost);
}
}
}

//Create an instance of User with no default host.
$user = new User();

//This will echo a blank line because the host was never set and is null.
echo '$user->host: "'.$user->host()."\"<br>\n";

//Set the host to "localhost".
$user->host('localhost');

//This will echo the current value of "localhost".
echo '$user->host: "'.$user->host()."\"<br>\n";

//Create a second instance of User with a default host of "dbserver.com".
$user2 = new User('dbserver.com');

//This will echo the current value of "dbserver.com".
echo '$user2->host: "'.$user2->host()."\"<br>\n";

关于php - 如何在 PHP 类中使用外部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779207/

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