function 'POP'
POP(varname[,delimiter])
Удаляет и возвращает последнее поле переменной, содержащей заданный разделитель.
Описание
exten => s,1,Set(foo=one,two,three) exten => s,n,While($["${SET(var=${POP(foo)})}" != ""]) exten => s,n,NoOp(${var}) exten => s,n,EndWhile
Пока существуют значения в переменной ${var}, выводить в консоли значение переменной ${var}.
Итерация реализуется командой While()
Т.к. вышеприведенный пример работает, то дефолтный разделитель, видимо запятая - ','.
Например, в функции CUT дефолтный разделитель '-' и запятую приходится экранировать, а здесь нормально сделали.
Также из примера видно, что функция не только возвращает отрезанное значение, но и модифицированное значение исходной функции, что может быть очень полезно.
exten => s,n,NoOp(${var} - ${foo})
выведем в теле цикла, также и переменную ${foo}:
Синтаксис
POP(varname[,delimiter])
Аргументы
- varname - модифицуруемая переменная
- delimiter - разделитель (запятая по умолчанию)
См. также
- Asterisk function 'SHIFT' - поведение функции SHIFT аналогично POP, только отрезается первое. а не последнее поле.
exten => s,1,Set(foo=one,two,three) exten => s,n,While($["${SET(var=${SHIFT(foo)})}" != ""]) exten => s,n,NoOp(${var} - ${foo}) exten => s,n,EndWhile