2012-03-14 4 views
0

스테이징 서버에서 구문 분석 오류가 발생하고 우리의 사전 준비 서버로 인해 Dev 팀이 잘못된 구문을 없애는 지 궁금합니다.PHP에서 스테이징 서버의 정적 공용 클래스 멤버

   // INSIDE OF INDEX.PHP 
     <?php 
     require_once 'globals.php'; // variables and statics used throughout 

      // the next line is line #12 in the 'Parse error' message below 
     $_SESSION[ItemsFromBronzeAge::$ITEMNAMELABEL] = Labels::$USER_PROMPT_ITEMNAME; 

     ?> 

: - -의 index.php라는이 같은

 // GLOBALS.PHP 
    <?php 
     session_start(); 

     class ItemsFromBronzeAge { 
       static public $ITEMNAMELABEL = "ItemName"; 
     } 

     class Labels { 
        static public $USER_PROMPT_ITEMNAME = "Item name here...."; 
     } 
    ?> 

우리는 두번째 파일에 위의 globals.php이 포함

다음은 '구문 분석 오류'를 일으키는 코드입니다 그리고 1and1.com 스테이징 서버에서 index.php를 실행할 때 구문 분석 오류가 발생합니다.

 " Parse error: syntax error, unexpected ']', 
     expecting '(' in index.php on line 12" 

이 집을 운전하기 위해 우리는 ch

// WE CHANGED FROM THIS: 
    $_SESSION[ItemsFromBronzeAge::$ITEMNAMELABEL] = Labels::$USER_PROMPT_ITEMNAME; 

    // TO THIS AND THE 'PARSE ERROR' GOES AWAY -- THIS CODE WORKS ON THE STAGING SERVER: 
    $_SESSION["ItemName"] = "Item name here...."; 

우리 팀은 우리의 모든 소스 코드를 다시 것입니다 방법이 없습니다 : 이것의 index.php의 코드와 1and1.com 준비 서버에서 anged 라인 # 12는 더 이상 '구문 분석 오류'를보고합니다 배열 인덱스에 대한 상수 사용을 중단하고 배열 인덱스로 문자열 리터럴 사용을 회귀합니다.

제 질문은 위의 잘못된 구문을 사용하지 않도록 사전 준비된 dev 서버를 가지고 있습니까? 아니면 1and1.com에 일종의 PHP 설정이 있습니까?

나는 정적 인 클래스 멤버를 배열 인덱스로 사용한다는 것이 일반적이라는 것을 의미합니다.

+1

구문 오류가 나타나지 않고 로컬 테스트가 제대로 작동합니다. 정적 공용 속성 대신 클래스 상수를 사용해야합니다 (예 :'const ITEMNAMELABEL = "ItemName";). 사용중인 PHP 버전은 무엇입니까? – Phil

+1

"정적 공용"이 public static이어야하기 때문에라고 생각합니다. $ var = "Something"; –

+0

@Phil, 100 % 우리가 할 수있는 변화 덕분에, 1and1은 우리에게 아직 돌아 오지 않았고 기다리는 것이 개발 노력에 전혀 도움이되지 못했습니다. Sheikh, 1and1.com의 스테이징 서버에 대한 간단한 테스트 사례를 실행하고 '정적 인 대중'에서 '공개 정적'에 대한 제안에 대한 순서를 바꾸는 것이 효과가 있는지 확인합니다. 우리가 알고있는 모든 것, 사전 준비 서버는 간단하게 우리가 'static public $ var = "theText"로 떠나도록 해주었습니다 - 테스트 한 후에 다시 게시 할 것입니다 - 고마워요! – wantTheBest

답변

1

두 시스템에서 실행중인 PHP 버전은 무엇입니까?

다른 PHP 버전과 관련이있는 것 같습니다.

+0

사전 준비 서버는 PHP 버전 5.3.5를 실행 중입니다. 우리의 1and1.com 계정에서 'Global PHP'버전을 확인했을 때 버전 4로 설정되었습니다. '버전 5'(하위 버전은 표시되지 않고 '버전 5'만 선택) 옵션을 선택 했으므로 그걸 저장 했어. 위의 질문에서 동일한 코드를 다시 실행하고 결과를보고합니다 ... – wantTheBest

+0

DAGNABBIT MATT 당신은 우리를 좋은 사람으로 만들었습니다! 스테이징 서버가 이제 사이트를 표시합니다! 우 - 후. 인생은 좋습니다. 이제 다시 코딩! 고마워 친구! – wantTheBest

+0

니스! 프로덕션으로 이전하는 것이 좋습니다. –

관련 문제