2017-12-29 81 views
1

나는 PHP 클래스에서 기본값을 할당하는 가장 좋은 방법은 궁금합니다.PHP 가장 좋은 방법은 개체 클래스에서 Var 값을 할당하는 것입니다

예제 : PHP 생성자 __construct() 메서드는 클래스가 호출 될 때마다 읽힐 첫 번째 메서드입니다. 그래서 여기에 몇 가지 코드는 : 나는 위의

class A{ 
    private $x; 

    public function __construct(){ 
     //Var x iniated in constructor method 
     $this->x = "some values"; 
    } 
} 

예는 생성자 메서드에 x 변수를 "일부 값을"넣어.

그리고 이것 (아래 코드)도 시도해 보았습니다.

class A{ 
    private $x = "some values"; 

    public function __construct(){ 
     //Var x initiated out of constructor method 
    } 
} 

제 질문은 어떤 것이 가장 좋습니다?

+2

경우 , 숫자 값, 배열)을 변수 선언에 넣습니다. 표현식 (함수 호출, 계산)이면 생성자에 넣습니다. –

+0

$ x가 항상 동일한 경우 게시 한 두 번째 사례와 같이해야합니다. 값을 $ this-> x와 같이 탐색 할 수 있어야 공개 할 수 있습니다. 그렇지 않으면 비공개로 설정하십시오. – halojoy

답변

-1

// 동적 값 할당을 원한다면 더 좋을 수 있습니다.

class A{ 
     private $x; 

     public function __construct(){ 
      //Var x iniated in constructor method 
      $this->x = "some values"; 
     } 
    } 

// 정적/const 값 할당을 원한다면 더 좋을 수 있습니다.

class A{ 
    private $x = "some values"; 

    public function __construct(){ 
     //Var x initiated out of constructor method 
    } 
} 
3

TL; 가독성을 위해 가능한 한 기본값을 사용하십시오. 기본값으로 값을 할당 할 수없는 경우 함수를 사용하여 값을 설정하십시오.


정적 방법을 사용하는 경우 __construct이 호출되지 않으므로 값이 설정되지 않습니다.

는 리터럴 값이 있다면,이 값을 설정하는 생성자/세터/팩토리 메소드를 사용, 그렇지 않으면, 기본값 (private $x = 'some value')로 설정하는 것이 가장 좋습니다 : 값이 리터럴 (문자열 인

private static $x; 

public function getX() { 
    if (empty(self::$x)) { 
     self::$x = new XClass(); 
    } 

    return self::$x; 
} 

public function randomTest() { 
    $x = $this->getX()->callMethod()->doStuff(); 
}