2012-07-24 10 views
0

사이트를 디버깅 중입니다. 저는 아직 익숙하지 않은 클래스로 작업해야합니다.PHP 클래스의 기초 : 클래스의 값 전달

이 사이트에는 $this을 처리하지만이 클래스에 전달 된 변수가없는 것으로 보이는 클래스가 있습니다. 클래스이

class myclass extends otherclass{ 

    function dosmthtomyclass{ 
     print_r($this); 
    } 
} 

function dosmttomyclass처럼 배열을 출력한다.

클래스에 정의 된 변수 묶음이 있지만 해당 변수에 지정된 특정 값이없는 것 같으며 값을 전달할 클래스에 생성자가 없습니다.

나는 어디에서 변수가 전달되어야하는지에 대해 심각하게 혼란 스럽다. 이것은 정말 기본적인 것이지만 어떤 도움을 주시면 감사하겠습니다. 클래스에 변수를 전달할 수있는 방법은 무엇입니까?

+0

"extends otherclass" – Yehonatan

+0

[http://php.net/manual/en/language.oop5.php](http://php.net/manual/en/language.oop5.php)이 것이 도움이됩니다. 약간의 혼란 ... – faino

+0

@diEcho Thats not true :'$ this'는 항상 메소드가 호출 된 객체를 참조합니다. A는 "모든 메소드와 변수를 참조하는"구조를 상상할 수 없습니다;) – KingCrunch

답변

0

이는 다음과 같습니다

<?php 
class otherclass{ 
    public $name="Mike"; 
} 

class myclass extends otherclass { 
    function dosmthtomyclass() { 
     print_r($this); 
    } 
} 

$test=new myclass(); 
$test->dosmthtomyclass(); //prints "[name] => Mike" 
1

$this은 현재 개체를 나타냅니다. 방법은 개체 컨텍스트 내에서 호출 될 때 PHP documentation

의사 변수 $ 따라이 가능하다. $ this는 호출 객체 (일반적으로 메소드가 속한 객체이지만 보조 객체의 컨텍스트에서 메소드가 정적으로 호출되는 경우 다른 객체)에 대한 참조입니다.

여기에 대한 자세한 설명이 나와 있습니다. 당신은 당신은 OOP의 수동 및/또는 자습서를 통해 갈 필요가

What does the variable $this mean in PHP?

+0

아니요, '$ this'는 [키워드]가 아닙니다 (http://php.net/reserved.keywords) ... /// 더 나은 지금;) – KingCrunch

+0

괜찮아요 그래서 그것은 의사 변수입니다. 수정 :) –

0

이해하는 데 도움이 될 수있다. 이것이 유일한 방법이기 때문에 OOP를 이해할 수 있습니다. 다음으로 시작하십시오 : http://www.php.net/manual/en/language.oop5.basic.php

$ 이것은 현재 객체의 인스턴스를 참조합니다. 개인 변수/메소드가 하위 클래스 (확장 클래스)로 가시화되지 않는 이유를 이해하려면 PHP + 가시성에 대해 읽어보십시오.

행운을 빈다.

0

$this은 클래스의 현재 개체를 나타냅니다. 더 명확하게하기 위해 다음 코드를 실행합니다 : MyClass에이 같은 ... otherClass에서 데이터를 받고 있기 때문에

<?php 
class abc { 
    var $val = 3; 

    function show() 
    { 
     print_r($this); 
    } 
} 

$ob = new abc(); 
$ob->show(); 
0

어쩌면 당신을 도울 수 PHP에서 클래스를 사용하는 방법에 대한 몇 가지 배경 :

$ 이것은 클래스 내의 계층 구조를 나타내는 데 사용됩니다.

class Phpclass{ 

    public function main(){ 
     echo "public function called<br/>"; 
     $this->helloworld(); 
    } 

    private function helloworld(){ 
     echo "hello world"; 
    } 

} 

$phpclass=new Phpclass(); 
$phpclass->main(); 

이 클래스는 변수 $의 phpclass 인스턴스화 될 객체의 청사진이다 예를 들어,이 같은 클래스를 가질 수있다. main()은 클래스의 plublic 함수이므로 클래스 외부에서 호출 할 수 있습니다.private 함수는 클래스 내부에서만 호출 할 수 있으므로 main() 함수는 $ this를 클래스 자체의 식별자로 사용하여 자체 내부의 개인 함수 helloworld()를 호출합니다. $ this가 없으면 객체는 자신이 내부의 함수를 참조하고 있다는 것을 알 수 없습니다.

먼저 "public function called", "hello world"가 표시됩니다.