2015-05-14 3 views
0

Я хочу использовать переменную как глобальную в рекурсивной функции, определенной в классе. Я хочу что-то вроде этого.глобальная переменная в классе php

<?php 
    class copycontroller extends BaseController { 
    function copycontroller() { 
     $foo="123" ; 
     function recursive() { 
     global $foo ; 
     echo $foo ; 
     recursive() ; 
     } 
     recursive(); 
    } 
} 

в моем происхождении кода у меня есть условие остановки recursive.output является NULL. Может кто-нибудь мне помочь ?

+0

Где логика, которая останавливает рекурсию? Я ничего там не вижу. –

+0

Я не ставил эту логику здесь. – adib16

+0

Почему вы не можете передать параметр функции? –

ответ

2

Вы не можете вложить такие функции. Вы можете сделать что-то вроде этого:

class copycontroller extends BaseController { 
    function copycontroller() { 
     $foo="123"; 
     $this->recursive(); 
    } 

    function recursive() { 
     global $foo; 
     echo $foo; 
     $this->recursive() 
    } 
} 

Также обратите внимание, что использование глобальных переменных считается плохой практикой. Я не уверен, что ваша цель, но она может быть лучше, чтобы определить класс свойство $foo, и доступ к нему вместо:

class copycontroller extends BaseController { 
    protected $foo; 

    function copycontroller() { 
     $this->foo = "123"; 
     $this->recursive(); 
    } 

    function recursive() { 
     echo $this->foo; 
     $this->recursive() 
    } 
} 
Смежные вопросы