2014-10-10 2 views
0

Как мне получить доступ к переменным внутри функции, находящимся в классе из другого класса.Как получить доступ к переменной внутри функции из другого класса

внизу .. Я хотел получить $ asdf в другом классе.

, например

class abc{ 
    public function foo1(){ 
     $asdf ='YEAHHHHH'; 
    } 
} 
class xyz{ 
    private qw; 
    public function foo2(){ 
     $this->qw= new foo1(); 
     $this->qw->foo1()->asdf; // asdf is not found.. 
     echo $this->qw 
    } 
} 
+1

Есть ваша функция возвращает значение. – jeroen

+1

'$ this-> qw-> foo1() -> asdf;' идет против почти всех правил или областей, синтаксиса и переменной видимости. –

+0

невозможно. '$ asdf' является локальной переменной и будет существовать только тогда, когда фактически выполняется метод' foo1() '. выполнение '$ this-> asdf = 'yeah'' будет работать, но даже тогда переменная будет существовать только после того, как foo1 будет вызван хотя бы один раз. –

ответ

0

Сначала убедитесь, что функция возвращает значение по мере необходимости, а именно:

return $asdf; 

Вы можете ссылаться и присвоить значение переменной:

$value = $this->qw->foo1(); 

Таким образом, ваш код будет выглядеть примерно так:

class abc{ 
    public function foo1(){ 
     $asdf ='YEAHHHHH'; 
     return $asdf; 
    } 
} 
class xyz{ 
    private qw; 
    public function foo2(){ 
     $this->qw= new foo1(); 
     $value = $this->qw->foo1(); 
     echo $value; 
    } 
} 
0

Я предлагаю вам создать object из class доступа к class собственности и использовать return в foo1(). Пример здесь ..

class abc{ 
    public function foo1(){ 
     return 'YEAHHHHH'; 
    } 
} 

class xyz{ 
    private $qw; 
    public function foo2(){ 
     $obj = new abc(); 
     echo $this->qw = $obj->foo1(); 
    } 
} 

$obj = new xyz(); 
$obj->foo2(); 

Output: YEAHHHHH 
0
class abc{ 
    public function foo1(){ 
     $asdf ='YEAHHHHH'; 
     return $asdf; 
    } 
} 
class xyz{ 
    private qw = new abc(); 
    public function foo2(){ 
     echo $this->qw->foo1(); 
    } 
} 
  1. У вашей первая функция возвращает то,
  2. Создать экземпляр требуемого класса внутри другого класса (вы должны смотреть в расширенный)
  3. вызова нужной функции
  4. Эхо возвращаемых данных от вызываемой функции
Смежные вопросы