2016-07-21 4 views
-1

Я хочу получить переменную из класса.Получить переменную из класса OOP PHP

Пример,

config.php

$config['function'] = array('filter_validate','form'); 

controller.php

class Controller{ 

    public function __construct() 
    { 
     foreach ($config['function'] as $key => $function_class) { 
      $function_class = new $function_class(); 
     }  
    } 

} 

Но я не могу получить $ конфиг [ 'функция'] переменную в контроллере. Как это можно сделать?

+1

Pass его как 'parameter' – DarkBee

+0

Как я могу пройти? – TogrulZadeh

+0

Или создать конфигурационный класс – splash58

ответ

0

Вам необходимо пройти конфиг конструктору, например:

class Controller{ 

    public function __construct($config) 
    { 
     foreach ($config['function'] as $key => $function_class) { 
      $function_class = new $function_class(); 
     }  
    } 

} 

$config['function'] = array('filter_validate','form'); 
$controller = new Controller($config); 
0

функции вне любого класса являются глобальными может быть вызвана из любого места. То же самое с переменными .. просто не забудьте использовать глобальные переменные.

<?php 
    function abc() { } 

    $foo = 'bar'; 

    class SomeClass { 
     public function tada(){ 
      global $foo; 
      abc(); 
      echo 'foo and '.$foo; 
     } 
    } 
?> 
1

Решение # 1 (с параметром):

class Controller { 
    public function __construct($config) { 
     foreach ($config['function'] as $key => $function_class) { 
      $function_class = new $function_class(); 
     }  
    } 
} 

Решение # 2 (с global - НЕ рекомендуется):

class Controller { 
    public function __construct() { 
     global $config; 
     foreach ($config['function'] as $key => $function_class) { 
      $function_class = new $function_class(); 
     }  
    } 
} 
Смежные вопросы