如何使用 ? 将字符串转换为数组或 return 空数组?操作员

How to convert a string to array or return empty array using the ? operator

我有一个 class 的属性需要检查。该变量是一个字符串,但如果它不为空,我想将其转换为一个数组,否则 return 一个空数组。

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

截至目前,如果 getLevel() return 是一个字符串,它 return 是一个字符串,但我想要一个数组。有没有办法在保留 ?: 运算符的同时做到这一点。

如果我对你的问题的理解正确,这应该能帮到你:

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

如果 getLevel() returns 一个字符串,您最终会得到一个包含该字符串的数组。如果 getLevel() returns 什么都没有,你将得到一个空数组。

编辑:检查一下,您最终会得到一个包含 NULL 元素的数组。如果这对你不起作用,你可以试试这个版本,它会给你一个零元素的数组:

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

你可以试试

'myVariable' => ($token->getUser()->getRecord()->getLevel()!="") ?explode(",",$token->getUser()->getRecord()->getLevel()):array()