Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > доступ к внешней переменной из класса


Автор: Agares 26.1.2010, 22:11
есть примерно такой код:

Код

<?php

$config = '123';

class cl
{
     ...
}

?>


Как из класса cl получить переменную $config ?

Автор: нуп 26.1.2010, 22:36
в функциях класса просто подключай ее
Код

function c1_class(){
  global $config;

 echo $config;
}

Автор: bars80080 26.1.2010, 23:07
лучше всё же засунуть её через аругменты методов.

Код

class cl {

    var c1;

    cl($c1) {
        $this->c1 = $c1;
    }

}

$config = 123;

$cl = new cl($config);

& - если нужно сделать ссылку

Автор: Sentox 30.1.2010, 13:19
может всё таки в контексте PHP5 

Автор: bars80080 31.1.2010, 23:10
Цитата(Sentox @  30.1.2010,  12:19 Найти цитируемый пост)
может всё таки в контексте PHP5 

если ты просишь меня, то я переспрошу: зачем?
если ты предлагаешь - то напиши

Автор: Agares 7.2.2010, 14:18
Спасибо большое!

сделал так:
Код

<?php
    $config = "123";

    class core
    {
        var $config;
        function __construct()
        {
            global $config;
            $this->config = $config;
        }

        function cfg()
        {
            print $this->config;
        }
    }

    $test = new core();
    $test->cfg();
?>


Все  заработало!

Автор: awers 7.2.2010, 15:16
Agares, не стоит юзать global в контексте ооп. Сделай так:
Код

<?php
    $config = "123";
    class core
    {
        var $config;
        function __construct($config)
        {
            $this->config = $config;
        }
        function cfg()
        {
            print $this->config;
        }
    }
    $test = new core($config);
    $test->cfg();
?>

Автор: Agares 7.2.2010, 15:35
awers, хорошо. спасибо. А вообще интересно, почему не стоит юзать global в ООП?

Автор: awers 7.2.2010, 16:13
Используя global ты нарушаешь линейный ход выполнения скрипта. Т.е. с моей точки зрения, куда очевиднее передавать параметр явно

Автор: Agares 7.2.2010, 22:12
понял. спасибо. буду явно передавать параметр

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)