2011-12-24 3 views
6

나는 PHP에서 많은 메소드와 변수를 가진 클래스를 가지고있다. 동일한 클래스에서 다른 메서드를 호출 할 메서드가 필요할 때마다 $this->을 추가해야합니다. (!)는 : 사방 $this->를 방지 할 수있는 방법이 있나요

$nextX = $this->calculateNextX($this->DX, $this->DY, $this->DZ); 
$nextY = $this->calculateNextY($this->DX, $this->DY, $this->DZ); 
$nextZ = $this->calculateNextZ($this->DX, $this->DY, $this->DZ); 
$this->X = $nextX; 
$this->Y = $nextY; 
$this->Z = $nextZ; 

이 같은 일부 잘못 읽기 쉬운 소스를 생산?

+3

매우 좋은 말 장난 :) – Marlon

+0

각 계산 방법을 각각의 속성을 수정하는 방법에 대해 어떻습니까? – BoltClock

+0

@BoltClock 항상 그렇지는 않습니다. 각 계산은 다른 위치에서 재사용 할 수 있습니다. 나는 이미 세 개의 변수를 넘기는 것을 피하기 위해 X, Y, Z를 읽게했다. – fernacolo

답변

6

아니요, PHP의 기본 제공 OOP 개념을 사용하여 해당 구문을 피할 수는 없습니다. 자바 스크립트, 파이썬과 펄 같은

PHP - 자바와 달리 항상 루비 같은하지만 - 또는, "현재 예"에 대한 $this - - 액세스 구성원 항상 명시 적 수신기이 필요합니다. 구문은 PHP가이 구문을 나타 내기 위해 사용하는 형식 일 뿐이며 언어에 "늦게 나오는"영향을 많이 받았을 것입니다. 또한 Perl/C 구문을 연상시킵니다.

위치는 변경 될 수 있거나 멤버를 액세스하는 방법 것을 사이트의 수는 하루의 끝에서, 환원 될 수도있다.

해피 코딩. 그것은 단지 당신이 변수가 아닌 방법이나 정적 속성을하자 것이지만

+0

해피 코딩 및 메리 크리스마스 :) – NikiC

0

당신도 C에서

$a = $this; 
$a->stuff(); 

뭔가 다른 설정할 수는 ++ 난 당신이 클래스 멤버에 작용하는 명확성을 위해 비록 this를 사용하는 것을 선호합니다. PHP에서는 옵션이 아닙니다.

2

는 각 방법

extract(get_object_vars($this)); 

에서이 작업을 수행 할 수있다. 그리고 그들은 참고 문헌이 아니기 때문에 독서에만 유용합니다.

+0

당신은 나를 PHP 폭언을 저장했습니다. – clankill3r

관련 문제