스테이징 서버에서 구문 분석 오류가 발생하고 우리의 사전 준비 서버로 인해 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 설정이 있습니까?
나는 정적 인 클래스 멤버를 배열 인덱스로 사용한다는 것이 일반적이라는 것을 의미합니다.
구문 오류가 나타나지 않고 로컬 테스트가 제대로 작동합니다. 정적 공용 속성 대신 클래스 상수를 사용해야합니다 (예 :'const ITEMNAMELABEL = "ItemName";). 사용중인 PHP 버전은 무엇입니까? – Phil
"정적 공용"이 public static이어야하기 때문에라고 생각합니다. $ var = "Something"; –
@Phil, 100 % 우리가 할 수있는 변화 덕분에, 1and1은 우리에게 아직 돌아 오지 않았고 기다리는 것이 개발 노력에 전혀 도움이되지 못했습니다. Sheikh, 1and1.com의 스테이징 서버에 대한 간단한 테스트 사례를 실행하고 '정적 인 대중'에서 '공개 정적'에 대한 제안에 대한 순서를 바꾸는 것이 효과가 있는지 확인합니다. 우리가 알고있는 모든 것, 사전 준비 서버는 간단하게 우리가 'static public $ var = "theText"로 떠나도록 해주었습니다 - 테스트 한 후에 다시 게시 할 것입니다 - 고마워요! – wantTheBest