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

доступность метода класса в методах другого класса

  • Faster

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

    Spritz 21 июня 2010 г. 2:59

    как?

    тупо

    function get(){
    global $otherClass;

    }
  • VaseninM

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

    Spritz 21 июня 2010 г. 3:19, спустя 20 минут 39 секунд

    ну или Class::instance->method();
    или Registry::get('class')->method();
    Спустя 21 сек.
    Или в конструктор передавать
    Спустя 26 сек.
    Что самое оптимальное на мой взгляд ибо обеспечивает уточнение типа объекта.
  • artoodetoo

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

    Spritz 21 июня 2010 г. 4:01, спустя 41 минуту 45 секунд

    Faster, ты видимо имел в виду ОБЪЕКТЫ.
    global $otherClass — полный абсурд. в PHP переменные не могут быть ссылкой на класс. есть ссылки на объект.

    Если ты таки хочешь вызывать методы класса (т.е. static методы), тогда нет проблемм. Имя класса видно отовсюду. Все public static методы ты можешь вызывать откуда угодно без global и прочих ухищрений.

    А если речь таки об объектах — то StartakuS описал как.
    ιιlllιlllι унц-унц
  • Nyaah

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

    Spritz 21 июня 2010 г. 9:12, спустя 5 часов 11 минут 16 секунд

    почитай про ооп емана, в частности про наследование:

    class Parent
    {
       // or protected function
       public function sayOe()
       {
           echo 'ouuuueee, baby!';
       }
    }
    class Child extends Parent
    {}

    $test = new Child();
    $test->sayOe();
    ещё есть функция __call(), но ею тебе лучше пока не пользоваться =)
    Work, buy, consume, die
  • adw0rd

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

    Spritz 21 июня 2010 г. 9:32, спустя 19 минут 52 секунды

    ооп emany!
    adw/0
  • Faster

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

    Spritz 21 июня 2010 г. 13:44, спустя 4 часа 11 минут 38 секунд


    почитай про ооп емана, в частности про наследование:

    class Parent
    {
       // or protected function
       public function sayOe()
       {
           echo 'ouuuueee, baby!';
       }
    }
    class Child extends Parent
    {}

    $test = new Child();
    $test->sayOe();
    ещё есть функция __call(), но ею тебе лучше пока не пользоваться =)

    в моем случае скрестить не удастся
  • Faster

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

    Spritz 21 июня 2010 г. 14:12, спустя 28 минут 13 секунд

    SpartakuS,
    в конструкторе я присваиваю свойству объекта другой объект, верно?
  • Faster

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

    Spritz 21 июня 2010 г. 14:19, спустя 6 минут 45 секунд

    кстати как в конструктор передать переменную извне?
  • Абырвалг

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

    Spritz 21 июня 2010 г. 14:22, спустя 2 минуты 55 секунд


    class A
    {
    public function __constructor($variable)
    {
    // …
    }
    }

    $a = new A('aaa');

    Спустя 20 сек.
    марш читать мануал
  • VaseninM

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

    Spritz 21 июня 2010 г. 14:24, спустя 2 минуты 44 секунды

    Ну что то типо:
    class ClassName {

       public function __construct (DataBase $db) {
            $this->db = $db;
       }

    //Тут нам нужно работать с базой данных
    //Вот так здесь работаем. $this->db->query('SELECT * FROM users');
    }

    $db = new DataBase (); //$db может быть и дочерним классом DataBase
    $classname = new ClassName ($db); //А вот если передать сюда обьъект другого класа, то вылетит ошибка. Какая хз, не помню
    Спустя 44 сек.
    Джедаи и прочие гуру, я прав?
  • Faster

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

    Spritz 21 июня 2010 г. 14:34, спустя 9 минут 47 секунд

    >кстати как в конструктор передать переменную извне?
    с этим понятно
    с
    >в конструкторе я присваиваю свойству объекта другой объект, верно?

    class ClassName {

    public function __construct () {
    $this->curl =new Curl();
    }


    и работаю с $this->curl->connect внутри ClassName
  • VaseninM

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

    Spritz 21 июня 2010 г. 14:37, спустя 2 минуты 16 секунд

    можно и так, если тебе объект не нужен будет вне класса.
  • Faster

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

    Spritz 21 июня 2010 г. 14:37, спустя 34 секунды

    нет, все внутри
  • VaseninM

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

    Spritz 21 июня 2010 г. 14:38, спустя 1 минуту 3 секунды

    Ну так тогда вообще нет проблем. Делай как показал на последнем примере.
  • LIFF

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

    Spritz 21 июня 2010 г. 16:52, спустя 2 часа 14 минут 10 секунд

    Вроде в конструктор ненадо передавать ничего(на то он и коструктор)). Гуру поддержите меня.
    Спустя 59 сек.
    я бы лучше это захерачил в отдельный метод

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