ФорумПрограммированиеPHP для идиотов → Литерал или переменная?

Литерал или переменная?

  • Rotten

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

    Spritz 28 декабря 2010 г. 1:54

    Есть функция с параметрами.
    Как внутри этой функции узнать, что тот или иной параметр не литерал а переменная(ну или наоборот)?

  • kostyl

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

    Spritz 28 декабря 2010 г. 2:00, спустя 6 минут 21 секунду

    никак наверно в пыхе нет такого типа function doThat(const foo)
    Спустя 30 сек.
    или я не о том?
  • Абырвалг

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

    Spritz 28 декабря 2010 г. 2:05, спустя 4 минуты 9 секунд

    я нихуя не понял, но может это поможет http://ua2.php.net/manual/en/reflectionfunctionabstract.getparameters.php ?
  • artoodetoo

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

    Spritz 28 декабря 2010 г. 2:05, спустя 35 секунд

    хз. а нахуа?
    ιιlllιlllι унц-унц
  • adw0rd

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

    Spritz 28 декабря 2010 г. 2:46, спустя 40 минут 55 секунд

    наверное кто-то хочет эмулировать именованные аргументы

    $one = 1;
    $two = 2;

    func($one, $two, 'test')
    получаем
    $kwargs['one']=1
    $kwargs['two']=2
    $args[0]='test'
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Rotten

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

    Spritz 28 декабря 2010 г. 3:02, спустя 15 минут 32 секунды

    в пыхе такое как раз есть..
    В зенд фреймворке, когда мутишь prepared sql statement, и биндишь параметры  со знаками вопросов(плейсхолдеры), то если эти параметры литеральные а не переменные, зенд пошлет тебя нахер…

    Я сам охерел когда 1й раз такое обнаружыл…
    И, хотя это было довольно давно, мне до сих пор интересно, как это работает…

    Я рылся в сорцах зенда, но туго. Он еще построен хитрожопо и специфически на разных архитектурных паттернах…
  • Mars

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

    Spritz 28 декабря 2010 г. 3:05, спустя 3 минуты 32 секунды

    Передавай константы, больше никак
  • Абырвалг

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

    Spritz 28 декабря 2010 г. 3:07, спустя 1 минуту 50 секунд

    Rotten, я опять нихуя не понял)
    давай подробней объясни.

    может debug_backtrace?)
  • Rotten

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

    Spritz 28 декабря 2010 г. 3:13, спустя 6 минут 19 секунд

    Абырвалг,
    // объявление
    function test($param)
    {
    // здесь проверяем $param - переменная ли она или константа…
    }

    // вызов
    test(3);// литерал

    $arg = 3;
    test($arg);// переменная

  • kostyl

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

    Spritz 28 декабря 2010 г. 3:23, спустя 9 минут 22 секунды

    Rotten, потому что блядь ссылку не создашь на свой литеал…
    Спустя 38 сек.
    вернее в летирале нет ссылки, такой как в переменной
  • Rotten

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

    Spritz 28 декабря 2010 г. 3:35, спустя 12 минут 47 секунд

    kostyl, не понел, ты о чем?
    Я абырвалгу объяснил где собака зарыта)..

    остынь, чувак)..
  • kostyl

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

    Spritz 28 декабря 2010 г. 3:58, спустя 22 минуты 29 секунд

    Rotten, да я и не греюсь, просто так круче звучит ))) я тебе про плейсхолдеры объясняю
  • Абырвалг

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

    Spritz 28 декабря 2010 г. 4:31, спустя 32 минуты 44 секунды

    kostyl, а зачем в плейсхолдерах ссылки?

    Rotten, ну парсингом дебаг-бектрейса это можно реализовать
  • kostyl

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

    Spritz 28 декабря 2010 г. 5:03, спустя 32 минуты 39 секунд

    а зачем в плейсхолдерах ссылки?

    потому что апи такое, на сколько я помню…

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