2013-09-07 6 views
1

정적 클래스를 사용하지 않고 외부 클래스 - 인스턴스 호출 후에 객체에서 함수를 호출하려면 어떻게해야합니까?외부 함수 호출 후 객체 가져 오기

가 여기 내 샘플입니다 (그것은 "알았어!"에코한다) :

class class1 { 
    function func1() { 
     func3();   // function outside class 
    } 

    function func2() { 
     echo "AY!"; 
    } 
} 

$foo = new class1(); 
$foo->func1(); 

function func3() 
{ 
    echo "OK"; 
    $foo->func2();  // class instance doesn't exist any more 
} 

답변

4
class class1 { 
    function func1() { 
     func3($this);   // function outside class 
    } 

    function func2() { 
     echo "AY!"; 
    } 
} 

$foo = new class1(); 
$foo->func1(); 

function func3($object) 
{ 
    echo "OK"; 
    $object->func2();  // class instance doesn't exist any more 
} 
0

인스턴스가 인수로 전달합니다. 코드를 따라

<?php 

class class1 { 
    function func1($foo) { 
     func3($foo);   // function outside class 
    } 

    function func2() { 
     echo "AY!"; 
    } 
} 

$foo = new class1(); 
$foo->func1($foo); 

function func3($foo) 
{ 
    echo "OK"; 
    $foo->func2();  // class instance doesn't exist any more 
} 
?> 

출력 : 당신이 모두 같은`$의 foo`를 사용하여 제한하지 않는이 분명했습니다 있도록

OKAY! 
+0

매개 변수 이름을 변경하는 것이 좋습니다 것 3 곳. 또한'$ this'가 사용 가능 해지 자마자'func1'에 아무 것도 전달하지 않는 것이 좋습니다. – zerkms