XE관련 모듈을 손보고 있습니다.
간단한 질문이니 간단하게 내용을 첨부하도록 하겠습니다.
앞으로 A모듈을 개발한다는 과정으로 모든 경로는 a.controller.php 와 같이 표현하겠습니다.
a모듈의 클래스(a.class.php)파일에 member variable 을 선언하는데 public static 으로 변수를 선언하고 싶습니다.
그런데, 이를 실행하는 a.admin.view.php 에서 static으로 선언한 해당 variable 을 가져오는 과정인데 대부분의 admin.view 액션들은 아시다 시피 static 으로 실행하지 않고 있습니다.
이 경우 static이 대부분의 PHP속도가 유리하기 때문에 스태틱을 사용하는데 무용지물일지 고민입니다.
다음은 코드내용입니다.
람보
Lv. 17
댓글 4
용도에 따라 구분하면 되고, 속도 차이는 신경쓸 필요 없습니다.
인스턴스를 생성할 때마다 달라져야 하는 변수라면 멤버변수로 선언하고, 모듈 기본 설정이나 내부 캐시처럼 모든 인스턴스에서 공통으로 참조할 변수라면 static으로 선언하고, 바뀌어서는 안 되는 값이라면 const를 사용하여 상수로 선언하세요. (PHP 5.6부터는 상수에 배열을 넣을 수도 있습니다.)
개인적으로 메소드에는 public static을 종종 사용하지만 변수에는 public static을 거의 사용하지 않습니다. static으로 선언하는 것은 대개 모듈 내부적으로 참조할 데이터이지 외부에서 직접 조작할 것이 아니므로 public보다는 protected가 더 적절한 것 같더군요. (private은 상속받을 수 없으므로 피합니다.)
const 상수 쓸까도 생각했는데 PHP버전상의 문제가 있을거같기도하고..(아직 업데이트 안된곳에서 왜 갑자기 안된다고 하면.. 난감..)
그래서 보니깐 =_= 쓰는곳이 한 곳인데 누가 따로 글로벌형태로 변수 따로 빼놓는 형태로둔것 쓰는곳도 없는데 굳이 왜그랬지 생각들어서 그냥 일반 변수로..처리했어요.
답변감사합니다.
https://blog.lael.be/post/2535
예제 3번 보시면 될 것 같습니다.