Неинициализированное смещение массива - PullRequest
0 голосов
/ 24 мая 2010

Я использую PHP для создания формы с массивом полей. По сути, вы можете добавить в форму неограниченное количество «людей», и у каждого человека есть имя, фамилия и номер телефона. Форма требует, чтобы вы добавили номер телефона только от первого лица. Если вы оставите поле номера телефона пустым для любых других, файл обработчика должен быть запрограммирован на использование номера телефона от первого лица.

Итак, мои поля:

person[] - скрытое поле со значением, являющимся первичным ключом этого человека.

fname[] - поле ввода

lname[] - поле ввода

phone[] - поле ввода

Мой обработчик форм выглядит так:

$people = $_POST['person']
$counter = 0;

foreach($people as $person):
    if($phone[$counter] == '') {
    // use $phone[0]'s phone number
    } else {
    // use $phone[$counter] number
    }
    $counter = $counter + 1;
endforeach;

PHP не нравится, хотя, это бросает мне

Notice: Uninitialized string offset error.  

Я отладил его, запустив функцию is_array для people, fname, lname и phone, и он вернул true, чтобы быть массивом. Я также могу вручную вывести $ phone [2] и т. Д. И получить правильное значение. Я также запустил is_int для переменной $ counter, и она вернула true, поэтому я не уверен, почему это не работает, как задумано?

Любая помощь будет отличной!

Ответы [ 2 ]

8 голосов
/ 24 мая 2010

Я почти уверен, что phone[$counter] должно быть $phone[$counter].В противном случае он будет рассматривать «телефон» как строку.

0 голосов
/ 24 мая 2010

var_dump ваше значение $ _POST и посмотрите, что происходит. Показатели массива, вероятно, не установлены на то, что вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...