Как преобразовать строку в массив или вернуть пустой массив, используя?оператор - PullRequest
0 голосов
/ 21 ноября 2018

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

'myVariable' => $token->getUser()->getRecord()->getLevel() ?: []

На данный момент, если getLevel () возвращает что-то, возвращается какстрока, но я хочу массив.Есть ли способ сделать это, сохранив оператор?:.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

можно попробовать

'myVariable' => ($token->getUser()->getRecord()->getLevel()!="") ?explode(",",$token->getUser()->getRecord()->getLevel()):array()
0 голосов
/ 21 ноября 2018

Если я правильно понимаю ваш вопрос, это должно сделать это для вас:

'myVariable' => [$token->getUser()->getRecord()->getLevel()]

Если getLevel() возвращает строку, вы получите массив, содержащий эту строку.Если getLevel() ничего не возвращает, вы получите пустой массив.

Edit: убедитесь, что вы получите массив, содержащий элемент NULL.Если это не сработает, вы можете попробовать эту версию, которая даст вам массив с нулевыми элементами:

'myVariable' => (array) $token->getUser()->getRecord()->getLevel() ?: []
...