2010-12-03 4 views
3

다음 클래스가 있습니다.PHP 생성자없이 클래스 변수 초기화

class A{ 
public var1; 
public var2; 
} 

지금,이 클래스의 객체를 만들려면, 나는 다음을 수행하십시오 시간도 20이있을 수 있기 때문에

$a = new A(); 
$a->var1 = 123; 
$a->var2 = 987; 

이 할 수있는 더 좋은 방법이 있나요 클래스 내부의 변수. 난 그냥 코드를 압축 찾고, 그리고이 클래스에 대한 생성자가 사용되지 않습니다. 어떻게 주위에 피해 갈 것입니다, 또한

$arr = array(
'var1' => 123, 
'var2' => 987 
); 

: 좀 더 우리가 배열을 위해 할 과제의이 종류를 찾고 있어요

변수의 값은 (정적 키워드가 사용되지 않는 이유는) 정적 없습니다 NullPointerException (때로는이 개체를 .Net 가능 웹 서비스로 보내려고 할 때 발생합니다) -이 옵션은 클래스 내부의 null 변수와 연결할 수 있지만이 오류를 극복하는 방법을 정확히 알 수는 없으므로 선택 사항입니다.

답변

1

잘 생성자는 생성자 내부의 클래스 변수로 설정이 클래스 변수에 대한 값을 포함하는 매개 변수의 배열을 받아 들일 수 있습니다. 널 (NULL)을 피하려면, 선언 할 모든 클래스 변수를 빈 문자열 (empty string)과 같은 기본 값으로 지정하십시오.

+0

음 ...하지만 클래스에 생성자를 추가 할 수 없습니다. 약 5 개 이상의 변수가있는 대부분의 클래스에서 약 100 개의 클래스가 있습니다. null 값 문제를 주셔서 감사합니다 - 나는 같은 라인을 따라 생각하고있었습니다. – Stoic

+1

클래스를 확장 한 다음 해당 생성자를 재정의 하시겠습니까? 그게 가능하니? 또는 생성 후 대량으로 전달할 수 있도록 일종의 setParams 메소드를 추가하십시오. – Chestone

0

클래스의 속성에 값을 할당하는 더 좋은 방법이 있나요? 여러 가지 방법이 있지만 하나는 다른 것보다 반드시 좋을 수는 없으며 모두 비슷한 양의 코드를 포함하게됩니다.

는 .NET의 질문에 대답 할 수 없습니다; 나는 그것에 익숙하지 않다.

+0

나는 내가 찾고있는 예를 제공했다. 모든 단서를 제발? – Stoic

+1

예 당신은 내가 당신이 볼 ... 싶은 생각 무엇을 할 수 http://jsbin.com/anapo3/edit – simshaun

+0

흠없는 내가 찾고 있어요,하지만 그래 .. 함수를 만들 저를지도 않는 어떤 도움이 될 것입니다 정확히 이 ... http://jsbin.com/anapo3/2/edit – Stoic