Элемент массива PHP всегда возвращает false

Я пытаюсь заполнить набор флажков на основе сохраненных данных формы. К сожалению, элемент isSelected только возвращает false. Вот код:

if($field['type'] == 'checkbox'){
$inputs = $field['inputs'];
$count = '0';
foreach($inputs as $input){
if(($user_meta[$input['id']] !== '') && (isset($user_meta[$input['id']]))){
$select = true;
}
else{
$select = false;
}
$field['choices'][$count] = array(
'text' => $field['choices'][$count]['text'],
'value' => $field['choices'][$count]['value'] ,
'isSelected' => $select );
var_dump($select);
var_dump($field['isSelected']);
$count = $count + '1';
}
}

var_dump из $select правильно возвращает логическое значение true а также false значения, где это должно. Но isSelected Элемент всегда возвращает пустую строку. Это правда, даже когда я заменяю $select переменная с жестко заданным значением true или используйте 1 и 0 вместо true и false.

Я уверен, что упускаю что-то очень простое, но мне пока не повезло найти решение. Буду благодарен за любую помощь!

редактировать

Благодаря @Barmar у меня есть немного больше информации о проблеме. Это не удается, когда я пытаюсь присвоить значение $ field [‘choices’] [$ count] [‘isSelected’]. Журнал показывает: «Уведомление PHP: косвенная модификация перегруженного элемента GF_Field_Checkbox не имеет никакого эффекта». К сожалению, я не понимаю, почему это было бы проблемой здесь, поскольку из того, что я могу сказать, эта ошибка обычно возникает при использовании методов __get / set, которые я фактически не использую в этом случае. Я также попробовал решения, предложенные в "Косвенная модификация перегруженного элемента SplFixedArray не имеет никакого эффекта" но безрезультатно. Существуют ли какие-либо настройки или конфигурации, которые могут препятствовать этому назначению?

0

Решение

Я думаю, что я заметил ошибку. Как примечание, вам не нужно иметь переменную $ count при создании массива, поскольку вы переходите с 0 ++. Также счет может быть сокращен до $ count ++;

Похоже, это неправильно var_dump($field['isSelected']); а ты имел ввиду var_dump($field['choices'][$count]['isSelected']);

$field['choices'][] = array(
'text' => $field['choices'][$count]['text'],
'value' => $field['choices'][$count]['value'] ,
'isSelected' => $select );
var_dump($select);
var_dump($field['choices'][$count]['isSelected']);
$count++;
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector