list($firstname, $lastname) = array_pad(explode(' ', $queryString, 2), 2, null);
2
в explode()
гарантирует, что существует не более 2 значений, а array_pad()
гарантирует, что не менее 2 значений.Если нет пробела
, $lastname
равно null
.Это вы можете использовать, чтобы решить, что будет дальше
$lastname = is_null($lastname) ? $firstname : $lastname;
Небольшое обновление: для этого конкретного случая вы можете использовать небольшую хитрость
list($firstname, $lastname) = array_pad(explode(' ', $queryString, 2), 2, $queryString);
Это сделает все это за один шаг.Это должно работать, потому что
- Всегда есть хотя бы одно значение (для
$firstname
) - Если есть одно значение, то
$queryString == $firstname
.То есть теперь значение, которое используется для заполнения массива до 2-х значений (то есть ровно одно, потому что одно значение у нас уже есть) - Если есть два значения, то массив не заполняется
$queryString
потому что у нас уже есть 2 значения
По крайней мере, для удобства чтения я бы предпочел первое более очевидное решение.