2010-11-22 6 views
0

저는 PHP OOP에 막 들어가기 시작했고 클래스의 시작 부분에서 선언해야 할 프로퍼티에 대해 명확하지 않습니다.클래스의 속성을 선언하는시기는 언제입니까?

속성을 선언해야합니까?

A : 메서드에 대한 인수입니까?

B : 메소드에 대한 인수가 아니며 여전히 메소드 내에 있습니까?

C : 방법에서 반환되는? 예 를 들어

편집 여기에 내가 그래서 난 단지 클래스의 상단에 $ 쿼리를 선언해야

class user 
{ 
public function selectMember($username,$password) 
$query = "SELECT * FROM users WHERE username='$username' && password='$password'"; 
return $query; 
} 

을 만들려고 해요 된 UserClass 예를 들어입니까?

+0

이 예제에서는 쿼리를 속성으로 만들 필요가 없습니다. 사용자 데이터를 얻은 후에 나중에 필요할 경우 해당 속성으로 사용할 수 있습니다. –

답변

1

나는 이런 것들을 생각하는 방법은 객체가 실생활 객체 (duh)의 코드 표현이라는 것입니다. 위의 자동차 예제는 좋은 것입니다. 대부분의 실제 개체에는 특성과 동작이 있습니다. 우리의 객체가 person 인 경우 이름, 높이, 무게, 머리 색깔과 같은 속성을 갖게됩니다. 그런 다음, 우리 사람은 달리고, 자고, 먹는 것과 같은 행동을 할 것입니다.

조치는 메소드가되며 속성은 특성이됩니다. 프로퍼티는 액션이나 객체의 상태를 검사해야하는 프로그램의 다른 부분, 즉 IE에서 사용됩니다. 프로그램의 다른 부분은 현재 얼마나 큰지를 묻습니다.

대부분의 경우 반환 값과 인수는 속성이 아닙니다. 주목할만한 예외는 객체를 인스턴스화하는 데 사용하는 인수로서 다른 메소드에서 일반적으로 필요하기 때문입니다. 메서드 내에서 사용되는 변수의 경우 개체의 전체 상태를 정의하는 경우 속성이어야하지만 메서드의 목표를 달성하는 데 필요한 메서드 내부의 카운터와 같은 변수를 만드는 경우 , 그것이 당신의 물건의 소유물이되는 것은 이해가되지 않습니다.

필자는 더 적은 수의 속성에 대해 오류를 범하기 시작했습니다.뭔가를 성취하기 위해 재산이 필요한 시점에 이르면 그것을 창조하십시오. 나는 직접적인 필요가있을 때까지 그들을 창조하지 않을 것이다. 이렇게하면 논리적으로 기능하기 위해 객체가 필요로하는 속성에 대한 느낌을 갖기 시작할 것입니다.

조금 이해가되기를 바랍니다.

2

속성이 객체에 대한 데이터의 조각입니다 정말 좋은있다. 예를 들어, 클래식 자동차 예를 들어 :

  • 자동차의 색상, 제조사/모델, 연도 등은 자동차의 모든 속성입니다.
  • Key 개체를 시작해야하는 메서드 StartCar이있을 수 있습니다. 자동차에는 열쇠가 없으므로 열쇠는 속성이 아닙니다. 메소드 인수입니다. 그러나 자동차 에 주어진 열쇠의 유효성을 검사 할 수있는 자물쇠가 있습니다. 인수와 속성은 함께 작업하여 작업을 수행합니다 (또는이 경우 작업의 유효성을 검사합니다).

자동차 클래스의 각 인스턴스에는 이러한 속성에 대해 다른 값이있을 수 있습니다.

속성을 만들지 결정하는 데 도움이 필요한 경우 특정 요구 사항에 대한 추가 정보가 필요합니다.

+0

사용자 클래스를 작성하려고합니다. 여기에 간단한 예가 있습니다. – Tableking

+0

* oops 코멘트를 입력하십시오. * 어떻게 이러한 코멘트를 개행합니까? – Tableking

+0

그렇지 않습니다. 질문을 편집하고 거기에 정보를 추가하십시오. – cdhowie

관련 문제