static 변수에 배열을 넣을 때 에러 관련 질문입니다. 채택완료

파일의 윗부분입니다.

 

Copy
<?php

define('G5_USE_SHURL',true);

 

class ZXEShurl{
    private static $shurls = [
        G5_BBS_DIR.'/content.php' => [

// ....

 

이런 식으로 static 변수에 배열을 집어넣었는데,

 

Copy
Parse error: syntax error, unexpected '.', expecting ']' in ~~~~파일명~~~~ on line 6

 

이런 에러가 납니다.

어떻게 해야 되나요?

답변 1개

채택된 답변
+20 포인트

홑따옴표를 사용하셨으니깐 배열 key/value는 쌍따옴표를 사용하시면 되실것 같습니다.

Copy
<?php
define('G5_USE_SHURL',true);
 
class ZXEShurl{
    private static $shurls = [
        "G5_BBS_DIR.'/content.php'" => [
// ....
로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

G5_BBS_DIR 문자열이 그대로 들어가는데요...?
대충보고 연결자 오류로 추정했는데 몇가지 테스트해보니깐...

버전별로 다르게 작동하네요....
7.2 버전에서는 출력하는경우도 있고 에러나는경우도 있고...
7.3 버전에서는
상수는 G5_BBS_DIR.'/content.php' => [] 형식으로 해야되네요
변수는 "{$foo}/content.php" => [] 형태로도 작동하네요

[] 형태의 짧은형식은 5.4이상버전에서 지원하며 array()를 사용하셔야됩니다
php 5.4.8버젼입니다.
+ 아예 (get~~~() 이런식의) 다른 함수로 분리하니 되네요... php의 버그인가봅니다...
변경 가능성이 적다면 __construct 로 자동초기화 되게 하는게 좋을것 같습니다.
따로 인스턴스를 생성하는 클래스가 아니라서...
(Classname::method() 이런식으로 호출합니다)

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고