【发布时间】:2015-01-07 18:27:14
【问题描述】:
我们的一个用户组在 godaddy.com 上创建并一直在维护一个网站。制作它的人离开了,用户向 MIS 寻求帮助,我被要求进行更改。在我们弄清楚如何最好地将应用程序移动到我们自己的服务器之前,它必须保留在 godaddy.com 上。
为了创建一个测试环境,我将所有内容下载到了我的工作站,启用了 IIS,并安装了 PHP 和 MySQL。进行了所需的更改。用户批准了这些更改。不幸的是,其中一个文件在 godaddy.com 上不起作用。我正在寻求帮助,因为我有 PHP 经验,但在类方面工作不多。
最初的代码有:
private static $DB_HOSTs = 'xxxxxxx';
我改成:
private static $DB_HOSTs;
public function __construct() {
$this->DB_HOSTs = (strtoupper($_SERVER["HTTP_HOST"])=='D444L40334') ? 'localhost:3306' : 'xxxxxxxx';
我读到“私有静态”发现变量不能使用外部变量设置,必须使用 __construct() 方法。进行此更改后,它在我的机器上正常工作。我认为这可能是版本控制问题,下面的 stackoverflow 问题 PHP Version Upgrade Caused Problems With Class Constructors 证实了这一点。
我需要在我的工作站和 godaddy.com 网站上使用相同的代码。我不会使用两者之间的不同文件来更改从测试到生产的文件。相反,我使代码动态化。在这种情况下我需要做些什么改变?我的工作站 PHP 版本是 5.3.28,godaddy.com 是 5.2.17。谢谢
【问题讨论】:
标签: php class constructor versioning