2017-03-03 1 views
-1

나는 아직도 내게 혼란스러워하는이 질문을 내 마음 속에 가지고있다. 같은 클래스의 다른 메서드를 호출하여 값을 조작하는 메서드가있는 PHP 클래스가 있습니다. 모든 함수는 "return"문에 의해 값을 반환합니다. 그러나 문제는 조작을 위해 여러 함수를 호출 할 때 첫 번째 함수 호출로 항상 스크립트를 종료 할 때 발생합니다. 예를PHP 내부 클래스의 반환 값

(사이비 코드에 대한 죄송합니다)에 대한

Class H 
Method1 
$this->Method2() 
$this->Method3() 
Method2 
Returns something 
Method3 
Returns something 
End 

때 경우에 반환 값이 다른 두 방법을 호출하는 스크립트에서 방법 항목을 사용하여 메신저. 내 스크립트는 Method1 내 Method2에있는 동안 끝납니다.

+0

더 나은 설명을 위해 샘플 코드 또는 다른 것을 게시 할 수 있습니까? – Dimi

+0

지금은 아니지만, 뭔가를 반환하는 동안 echo stmt를 사용하는 것이 좋은 방법인지 묻고 싶습니다. 스크립트는 method2 내부에서 method2를 호출 할 때 종료되기 때문에 method2가 실행 된 후에 method3을 사용하려고합니다. –

답변

0

먼저 .. http://www.killerphp.com/tutorials/php-objects-page-3/ 나는이 일이 당신이 느낌 희망을 더 나은 ... 내 ANS는 아무튼 경우 좋은 질문이 아닙니다. 질문 ... 계속 검색하십시오. 까다로운 문제 일 수 있습니다.

+0

고마워, 이건 까다 롭다. 나는 그것을 볼 것이다! –

+0

나는 이미 이런 것들을 모두 배웠다. 이것은 실제로 내 마음을 죽인다! –

+0

나는 당신에 대한 간단한 설명을 들었다. 루프가 끝날 때까지 ... 마지막으로 하나의 메소드를 호출하면이 루프가 처음부터 시작된다. 그래서 첫 번째 메소드보다 먼저 나온다. – Jana

0

return은 프로세스를 중단하고 원하는 것을 반환하기 때문입니다. 클래스의 내부 속성을 가져 와서 검색 할 수 있습니다. 이러한 속성을 설정하는 메서드는 setters이고 그 메서드를 검색하는 메서드는 getters입니다. 그것은 수 있습니다 당신은 단순히 에코 데이터를 원하는 경우

$class = new MyClass(); 

$class->setFirstName('David'); 
$class->setLastName('Parker'); 
$class->setCity('AnyTown'); 

echo $class->firstName; // David 

echo $class->lastName; // Parker 

echo $class->city; // AnyTown 

// or something like 

echo $class->getFullName(); // David Parker 

: 지금

<?php 

Class MyClass { 

    public $firstName; 
    public $lastName; 
    public $city; 

    // Setters 
    public function setFirstName($name) 
    { 
     $this->firstName = $name; 
    } 

    public function setLastName($name) 
    { 
     $this->lastName = $name; 
    } 

    public function setCity($city) 
    { 
     $this->city = $city; 
    } 

    // Getters 
    public function getFullName($name) 
    { 
     return "{$this->firstName} {$this->lastName}"; 
    } 

    public function getCity($name) 
    { 
     return $this->city; 
    } 

} 

을 내가 그 속성을 설정하기 때문에 쉽게 내 클래스를 인스턴스화 수 있고 그 정보를 잡아 :이 예 클래스에서보세요 클래스를 인스턴스화하고 클래스의 속성을 반향하는 것이 더 합리적입니다. 나는 보통 수업에서 뭔가를 return에 좋은 연습을 찾으십시오. 해당 클래스 개체로 작업 할 때는 echo을 사용하는 것이 좋습니다.

희망이 있습니다.

당신이 방법, 메소드 오버로딩과 오버 라이딩의 PHP..especially 반환 형식에 OOPS의 기초를 배울 필요가 모든
+0

getters 및 setters를 알고 있지만 감사합니다. 클래스를 인스턴스화 한 다음이를 조작하여 시연했습니다. 실제로 인스턴스화하지 않고 동일한 클래스의 다른 함수에서 값을 조작해야한다면 어떻게 될까요? 나는 그것을 얻었 으면 좋겠다? –

+0

친구에게 반향하고 싶지 않다. 간단히 브라우저에 인쇄한다. –