конструкция класса должна работать в разных версиях php

Одна из наших групп пользователей создала и поддерживает сайт на 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 вызвало проблемы с конструкторами классов подтверждает это.

Мне нужен один и тот же код на моей рабочей станции и на сайте godaddy.com. Я не изменяю файлы, идущие из теста в производство, с разными файлами между ними. Вместо этого я делаю код динамическим. Какие изменения мне нужно сделать в этом случае? Версия PHP моей рабочей станции — 5.3.28, а godaddy.com — 5.2.17. Спасибо

0

Решение

Существует огромная разница между 5.2.x и 5.3.x

Много изменений сделано в объектно-ориентированной стороне php.

Я не буду упоминать, насколько сильно устарел 5.2.x.

Вы можете посмотреть на это, чтобы увидеть изменения.

http://php.net/manual/en/migration53.php

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]