@wusudewama

Почему переменная может содержать разное значение в зависимости от способа ее использования?

Всем привет!
В modx evo вызываю сниппет вот таким образом:
[[editWorkImages? &images=`[+images+]`]]

В сниппете у меня есть такой код:

var_dump($images);
//string(10) "assets/images/users/c11ab8c3130d794c9c0fbece86402e85.png::||assets/images/users/67f5e9dd2741ccca564d0468352fc8e3.png::||assets/images/users/a0a0ae0d942f01c60fd436555ff8e04c.png::"
var_dump(bin2hex($images));
//string(20) "5b2b696d616765732b5d"
//Эта строка при перекодировании обратно = [+images+]
var_dump(explode('::||', $images));
//array(1) {
//  [0]=> string(10) "assets/images/users/c11ab8c3130d794c9c0fbece86402e85.png::||assets/images/users/67f5e9dd2741ccca564d0468352fc8e3.png::||assets/images/users/a0a0ae0d942f01c60fd436555ff8e04c.png::"
//}


То есть в $images вроде нужная мне строка, хотя string(10) заставляет задуматься, тут явно не 10 символов, зато в строке "[+images+]" как-раз 10
Я хочу разбить ее на массив, но explode не отрабатывает.
А функция bin2hex выдает значение вовсе не этой строки, а плейсхолдера modx. Как он туда попадает?

Почему такое может происходить? Как мне вытащить строку, которую выдает var_dump($images)?
  • Вопрос задан
  • 265 просмотров
Решения вопроса 1
alsopub
@alsopub
Я так понимаю в переменной $images у вас содержится строка [+images+]
Как раз 10 символов.
Все "лишнее" что вы видите - результат работы движка над выводом.
То есть он string(10) "[+images+]" перед выдачей браузеру преобразует в string(10) : "assets/..."
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
pro100ShCoder
@pro100ShCoder
программист
если у вас есть TV, которая называется 'images' и TV привязана к шаблону данной страницы
то можно вызвать так
[[editWorkImages? &images=`[*images*]`]]
если берется TV с определенной страницы
то внутри сниппета можно получить так getTemplateVarOutput
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы