PHP - приведение строки к int в аргументах list()?
Я уточняю свой код, и у меня есть пара мест, где мне нужно приводить строки как целые числа, но ограничения функции list() отговаривают меня от использования list()
, Конкретный пример:
$x = '12-31-2010';
$explode = explode("-", $x);
// Need to do the following because e.g. echo gettype($explode[0]) ---> string
$month = (int)$explode[0];
$day = (int)$explode[1];
$year = (int)$explode[2];
Что я хотел бы сделать (но получить фатальную ошибку), чтобы сделать вещи немного более аккуратными:
list((int)$month, (int)$day, (int)$year) = explode("-", $x); // I want echo(gettype) ---> integer for each variable
Есть ли способ сделать это или лучше всего я могу сделать следующее?
list($month, $day, $year) = explode("-", $x);
$month = (int)$month;
$day = (int)$day;
$year = (int)$year;
2 ответа
Решение
По этой ссылке:-
Как преобразовать значения массива из строки в Int?
Вы можете сделать это, как показано ниже:
list($month, $day, $year) = array_map('intval', explode('-', $x));
Если вам нужен одинаковый тип для каждого элемента в массиве, вы можете передать массив через array_map
прежде чем назначить его list(...)
:
$x = '12-31-2010';
list($month, $day, $year) = array_map('intval', explode("-", $x));