2014-06-10 6 views
0
<?php 

class A { 
    var $varA; 

    function funcA() { 
     $this->varA='AAAA'; 
     $bbb = new B(); 
     $bbb->funcB(); 
    } 
} 

class B {   
    function funcB() { 
     //### Is there any way to get value of $varA from here? 
    } 
} 

echo $aaa->funcA; 

?> 

위의 코드를 참조하십시오. funcB()에서 $ varA 값을 얻을 수있는 방법이 있습니까? 전역에 대해 알고 있고, 전달하거나 var $ varB를 추가 할 수 있다는 것을 알고 있습니다. B 클래스에 전달하고 설정하십시오. 나는 값을 얻는 표준 방법 (문법)이 있는지 묻는다.이전 클래스에서 가치를 얻을 수있는 방법이 있습니까?

답변

0

클래스 A의 변수를 public 및 static으로 만들면 A::$varA을 사용하여 액세스 할 수 있습니다.

class A { 
    public static $varA; 

    function funcA() { 
     self::$varA = 'AAAA'; 
     $bbb = new B(); 
     $bbb->funcB(); 
    } 
} 

class B { 
    function funcB() { 
     // Get value of $varA from A statically 
     echo A::$varA; 
    } 
} 

그러나 작업 순서가 중요해 지므로 이런 식으로하지 않는 것이 좋습니다. 나는 전통적인 공공 getter/setters를 살펴보고 가능한 해결책을 찾고 이것이 처음에는이 솔루션을 필요로하는지도 모릅니다.

+0

답변 해 주셔서 감사합니다. 정적으로 만드는 것은 global $ varA로 만드는 것과 거의 같습니다. 수업 외. 디자인 결함에 대해 알고 있습니다. 그것은 내 코드가 아니며 지금은 $ varA가 funcB ($ varA)로 전달됩니다. funcB ($ varA)는 (매개 변수가 다른) 여러 번 호출되기 때문에 실제로 $ varA는 거대한 배열이므로 좀 더 최적화 된 것을 찾고 있습니다. – Okapy

관련 문제