Хорошо, таким образом, у меня есть форма, которая отправляет мне массивы в массиве POST. Я пытаюсь считать его как так:
$day = $this->input->post("days")[0];
Это не работает. PHP заявляет "неожиданный' ['". Почему это не работает?
Я зафиксировал его путем выполнения его этот путь:
$days = $this->input->post("days");
$day = $days[0];
Я решил свою проблему, мне просто любопытно относительно того, почему 1-й путь не работал.
Отбрасывание массива от вызовов функций не поддерживается PHP. Она реализована в SVN trunk версии PHP, так что, скорее всего, она появится в будущих версиях PHP. Пока же вам придется прибегнуть к тому, что вы делаете сейчас. Для перечислимых массивов вы также можете использовать list
:
list($day) = $this->input->post("days");
Синтаксис, подобный этому:
$day = $this->input->post("days")[0];
, не поддерживается в PHP. Вы должны делать то, что делаете:
$days = $this->input->post("days");
$day = $days[0];
Другим подходом может быть перебор массива с помощью foreach
, например так:
foreach($this->input->post("days") as $day){
echo $day;
}