2014-10-20 2 views
3

php manual에서 사용자가 기여한 메모에 const 배열이 허용되었다고 명시되어 있습니다. 나는 심지어 stackoverflow에서 다른 게시물을 확인하고 그들은 같은 말했다.Const Array는 PHP 5.6에서 작동합니까?

<?php 

class Constants{ 
     const test = array("a"=>"apple","b"=>"ball","c"=>"car"); 
} 
echo Constants::test["b"]; 
echo Constants::test["c"]; 
echo Constants::test["a"]; 
?> 

출력 :

ball 
car 
apple 

위의 코드가 작동하는 다음 코드를 테스트했다. 그러나 나는이 클래스 외부에서 define('test',array("a"=>"apple","b"=>"ball","c"=>"car")을 사용하면 작동하지 않습니다. 이 설정은 문서화되지 않은 새로운 변경 사항입니까 아니면 설치 과정에서만 발생합니까?

내 설정은 Windows 7 x64에서 PHP 5.6.1 (32 비트 스레드 안전) 및 2.4.10 (32 비트)입니다. 나는 그들 각각의 사이트에서 직접 다운로드했다. 나는 WAMP 스택을 사용하지 않았다.

또한 힌트를 위해 netbeans 8.0.1 IDE를 사용하고 있으며이 오류를 표시합니다. 누구든지 그것을 제거하는 방법을 알아?

Syntax error 
unexpected: [ 
after: identifier 'test' 
expected: instanceof, as, =>, }, ',', OR, XOR, &&, ?, ;, ||, &&, |, ^, &, ==, !=, ===, !==, <=, 
>=, <, >, <<, >>, +, -, *, /, %, '.', ], (,), : 
---- 
+0

http://php.net/const에서 : 상수는 PHP 5.6 이상에서만 스칼라 값이나 스칼라 또는 배열 값으로 평가할 수 있습니다. –

+1

@RocketHazmat하지만 그는 5.6 – Cheery

+0

을 가지고 있습니다 @Cheery : 나는 질문을 잘못 읽은 것 같습니다. –

답변

0

분명히 클래스 외부에서 const를 사용하면 netbeans IDE의 오류가 표시되지 않습니다.

const test = array("a"=>"apple","b"=>"ball","c"=>"car"); 
echo test["b"]; 
echo test["c"]; 
echo test["a"]; 

이렇게하면됩니다.

관련 문제