ФорумПрограммированиеPHP для идиотов → Как создать константу функцией в конструкторе класса для доступа из других функц

Как создать константу функцией в конструкторе класса для доступа из других функц

  • Drayk

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 25 марта 2010 г. 21:52

    Как создать константу функцией в конструкторе класса для доступа из других функций?

    class Myparser
    {
    function __construct()
    {
    $margins = get_margins()
    }

    function get_margins()
    {
    //Запрос к бд и получение значения
    return $margins;
    }
    private static function new_price2($matches)
    {
    //Здесь нужно использовать константу $margins
    }


    Как правильно всё это сделать?
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 25 марта 2010 г. 22:06, спустя 13 минут 59 секунд


    class Myparser
    {
       function __construct()
       {
        $this->margins = $this->get_margins();
       }

       function get_margins()
       {
    //Запрос к бд и получение значения      
                 return $margins;
       }
  • Drayk

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 25 марта 2010 г. 22:27, спустя 21 минуту 16 секунд


    class Myparser
    {


    function __construct()
    {


    }

    function Myparser()
    {
    self::__construct();
    $this->my_margins = $this->get_margins();
    }

    function get_margins()
    {

    return $margins;
    }

    private static function new_price2($matches)
    {
    $qwe = new Myparser;


    $margins = $qwe->my_margins;

    }

    }

    При таком раскладе в new_price2 не видно my_margins.
    new_price2 обязательно должна быть private static
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 25 марта 2010 г. 22:34, спустя 7 минут 6 секунд

    как вы, блять, учитесь программировать, если по любому тупому вопросу не в ман лезете а на форум?
    Объекты в php на php.net
    Сайт который всегда помогает, когда хочется найти ответ
    Ещё один полезный сайт
    Work, buy, consume, die
  • Drayk

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 25 марта 2010 г. 22:39, спустя 4 минуты 30 секунд

    в манах искал, не нанёл, поэтому и здесь
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 25 марта 2010 г. 22:53, спустя 13 минут 40 секунд

    и по ссылкам прошелся, и ничего не нашёл?
    Work, buy, consume, die
  • Drayk

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 25 марта 2010 г. 22:59, спустя 6 минут 31 секунду

    Перепробывал различные варианты, где нибудь да вылазит ошибка. Поэтому и решил спросить совета. Уж поисковиком и мануалами пользоваться умею.

    class Myparser
    {


    function __construct()
    {


    }

    function Myparser()
    {
    self::__construct();
    $this->my_margins = $this->get_margins();
    }

    function get_margins()
    {

    return $margins;
    }

    private static function new_price2($matches)
    {
    $qwe = new Myparser;


    $margins = $qwe->my_margins;

    }
    function parser($start)
    {

    $start = preg_replace_callback("#(?<=<strong>)\s*(\d+\.\d+)\s*(?=<\/strong>)#", "Myparser::new_price2", $start, -1);

    }

    }

    В целом виде всё это выглядит вот так
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 26 марта 2010 г. 0:16, спустя 1 час 16 минут 40 секунд

    А ты констракт просто так чтоли юзаешь?))) Знаешь для чего он нужен то вообще?)
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 26 марта 2010 г. 0:24, спустя 7 минут 48 секунд

    Няха вывели :D
    Первый раз вижу)
  • Drayk

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 26 марта 2010 г. 0:42, спустя 18 минут 8 секунд


    А ты констракт просто так чтоли юзаешь?))) Знаешь для чего он нужен то вообще?)

    В нём другие методы объявлены, не относящиеся к этой теме. Если туда добавлять объявление константы, то вообще ничего не работает. Не отображает ничего, а только пишет, что соединение было сброшено.
    С ооп знаком поверхностно, только начинаю. Не судите строго. Всё что имеется выстрадано из мануалов методом проб и ошибок.
    Так как решить данную задачу?
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 26 марта 2010 г. 0:46, спустя 3 минуты 58 секунд

    Drayk, ты читаешь маны каких годов ?
    на будущее, для того чтобы вклинится в конструкт, то для этого есть метод _construct(), ты же делаешь методом 4-го пхп (создаешь одноименную ф-ию с именем класса)
    ну а если по твоему вопросу, то ты в своем запрятанном и закрытом статическом методе созаешь новый экземпляр класса в котором по видимости нету такого свойства как margins
    Спустя 138 сек.
    если тебе надо какоенить универсальное хранилище, которое доступно всегда и везде, то почитай про паттерн Registry
    я даже кажись в разделе faq или как то так, когда пр онего чтото писал
    Спустя 75 сек.
    о, я даже нашел его
    http://pyha.ru/forum/topic/3489.0
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 марта 2010 г. 3:23, спустя 2 часа 37 минут 31 секунду

    Drayk,
    Как создать константу функцией в конструкторе класса
    сука я тебе счет выставлю за мой сломанный мозг
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 26 марта 2010 г. 7:41, спустя 4 часа 18 минут 10 секунд

    мне доставило
    ιιlllιlllι унц-унц
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 26 марта 2010 г. 8:01, спустя 19 минут 24 секунды


    class Myparser
    {

    static private $margins;
    function __construct()
    {
    self::$margins = get_margins()
    }

    function get_margins()
    {
    //Запрос к бд и получение значения
    return $margins;
    }
    private static function new_price2($matches)
    {
    //Здесь нужно использовать константу $margins
    echo self::$margins;
    }


    Это что ли ? оО
  • Drayk

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 26 марта 2010 г. 15:23, спустя 7 часов 21 минуту 59 секунд



    class Myparser
    {

    static private $margins;
    function __construct()
    {
    self::$margins = get_margins()
    }

    function get_margins()
    {
    //Запрос к бд и получение значения
    return $margins;
    }
    private static function new_price2($matches)
    {
    //Здесь нужно использовать константу $margins
    echo self::$margins;
    }


    Это что ли ? оО

    То что надо ))
    Просто не правильно вопрос задал. Задача была создать константу в конструкторе и получить к ней доступ из private static function
    Спустя 52 сек.

    Drayk,
    Как создать константу функцией в конструкторе класса
    сука я тебе счет выставлю за мой сломанный мозг

    Оращайся, если что ))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!