ФорумПрограммированиеPHP для идиотов → namespace и class_exists

namespace и class_exists

  • AlexB

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

    Spritz 14 февраля 2013 г. 19:41


    namespace myNS;
    $a = new Class_In_myNS();
    - Все заебись


    namespace myNS;
    $cls = 'Class_In_myNS';
    $a = new $cls();
    - Отсос


    namespace myNS;
    class_exists('Class_In_myNS');
    - Тоже отсос

    Какого собственно?
  • Nyaah

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

    Spritz 14 февраля 2013 г. 20:34, спустя 53 минуты 11 секунд

    все как в мануале )
    http://www.php.net/manual/en/language.namespaces.dynamic.php
    Work, buy, consume, die
  • AlexB

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

    Spritz 14 февраля 2013 г. 21:11, спустя 37 минут 2 секунды

    Да понятно, что как в мануале. Но вопрос, какого собственно хуя я не снимаю? Наверно надо было в тему "За что я ненавижу php". ))))))
  • artoodetoo

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

    Spritz 14 февраля 2013 г. 22:38, спустя 1 час 26 минут 50 секунд

    AlexB, разве ты не перекинулся на питон?
    ιιlllιlllι унц-унц
  • AlexB

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

    Spritz 14 февраля 2013 г. 23:02, спустя 23 минуты 48 секунд

    Жизнь заставила перекинуться обратно …
  • phpdude

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

    Spritz 14 февраля 2013 г. 23:41, спустя 39 минут 23 секунды

    зря
    Сапожник без сапог
  • AlexanderC

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

    Spritz 15 февраля 2013 г. 0:31, спустя 49 минут 44 секунды

    AlexB, logichno…. ty zhe string daeshi a ne juzaeshi jazyk. konstr. a huli ono za vas dolzhno dogadyvatisja )))
  • AlexB

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

    Spritz 15 февраля 2013 г. 11:50, спустя 11 часов 19 минут 1 секунду

    На мой взгляд ни хера не логично. Если я указал один раз в заголовке файла неймспейс, какого его еще сто раз указывать? Ну да хер с ним …
    Зампоним, что лучше везде писать явно и ни на какие , директивы не надеяться. Утешимся тем, что это поднимет читаемость и понимаемость кода …))))
  • vasa_c

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

    Spritz 15 февраля 2013 г. 13:18, спустя 1 час 28 минут 5 секунд

    AlexB, а как тогда такое должно работать?

    namespace One;

    class OneClass {}

    $str = 'OneClass';
    \Two\func($str);

    // …

    namespace Two;

    function func($classname) {
    $instance = new $classname;
    }
  • Абырвалг

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

    Spritz 15 февраля 2013 г. 13:39, спустя 20 минут 58 секунд

    вот появится ключевое слово class и будет заебок:


    namespace myNS;
    class_exists(Class_In_myNS::class);


    ждите 5.5
  • AlexB

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

    Spritz 15 февраля 2013 г. 14:22, спустя 43 минуты 42 секунды

    vasa_c, хз коллизия, не могу сходу сказать как правильней ее решать.
    Абырвалг, тады вместо class_exists должна быть просто exists ))))
  • vasa_c

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

    Spritz 15 февраля 2013 г. 14:57, спустя 34 минуты 27 секунд

    vasa_c, хз коллизия, не могу сходу сказать как правильней ее решать.

    ну ты в переменную записал строку, которую куда-то передаёшь. откуда пыху знать, что ты в неё имя класса записал?
    и функциям знать незачем откуда их вызвали и где переданные в них аргументы были инициализированы.
  • AlexB

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

    Spritz 15 февраля 2013 г. 16:09, спустя 1 час 12 минут 30 секунд


    откуда пыху знать, что ты в неё имя класса записал?
    по ключевом слову new или по имени функции class_exists


    и функциям знать незачем откуда их вызвали и где переданные в них аргументы были инициализированы.
    ну тогда у таких функций должен быть параметр по умолчанию равный __NAMESPACE__
  • vasa_c

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

    Spritz 15 февраля 2013 г. 16:34, спустя 24 минуты 59 секунд

    он будет равен NAMESPACE того, где они определены.
  • AlexB

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

    Spritz 15 февраля 2013 г. 16:43, спустя 8 минут 32 секунды

    Ну да, с параметров в том виде как это есть сейчас не получится. Ну значит какие-то другие конструкции должны быть … ну хз, так как сейчас один хер не удобно …

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