2015-01-07 5 views
0

사용자 그룹 중 하나가 godaddy.com에서 사이트를 만들고 유지 관리했습니다. 그것을 남긴 사람이 MIS에 도움을 요청했고, 변경 요청을 받았습니다. 응용 프로그램을 자체 서버로 옮기는 것이 가장 좋은 방법을 찾아 낼 때까지 godaddy.com에 남아 있어야합니다.클래스 구성이 다른 PHP 버전에서 작동해야합니다

테스트 환경을 만들기 위해 워크 스테이션에 모든 것을 다운로드하고 IIS를 사용하며 PHP와 MySQL을 설치했습니다. 필요한 변경이 이루어졌습니다. 사용자가 변경 사항을 승인했습니다. 불행히도 파일 중 하나가 godaddy.com에서 작동하지 않습니다. 나는 PHP 경험이 있기 때문에 도움을 요청하고 있지만 수업을 많이하지는 않았다.

는 원래 코드가 있었다 :

private static $DB_HOSTs; 
public function __construct() { 
    $this->DB_HOSTs = (strtoupper($_SERVER["HTTP_HOST"])=='D444L40334') ? 'localhost:3306' : 'xxxxxxxx'; 
내가 변수는 외부 변수를 사용하여 설정할 수 없습니다 발견하고 그것을 사용할 필요가하는 "개인 정적"에 대해 읽어

:

private static $DB_HOSTs = 'xxxxxxx'; 

내가 그것을 변경 __construct() 메서드. 이 변경 후 내 컴퓨터에서 제대로 작동합니다. 이 버전 문제가있을 수 있으며 다음과 같은 stackoverflow 질문 PHP Version Upgrade Caused Problems With Class Constructors 확인합니다 생각했습니다.

내 워크 스테이션과 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

나는 그것을 이미 보았습니다. 대답은 내가 바꿀 필요가있는 것을 말해주지 않는다. 버전 경험이있는 사람이 코드에서 무엇을 변경해야하는지 알려줄 수 있기를 바랍니다. $ DB_HOST가 할당 된 곳에서는 오류가 발생하지 않지만 사용 된 곳에서는 오류가 발생하지 않으며 __construct()가 호출되지 않으므로 값이 비어 있습니다. – subjectivist

+1

PHP 5.2에서는 __construct가 존재하지 않았습니다. PHP 5.2 클래스에는 생성자가 없습니다. – geggleto

+0

이것은 쉬운 수정이었습니다. 누군가 내가했던 것과 추측 한 내용을 추측하면 그 답을 선택합니다. 나는 대답을 직접 게시하고 싶지 않다. – subjectivist

관련 문제