Consider this form element:

  $form['my_checkboxes'] = array(
    '#type' => 'checkboxes',
    '#title' => 'my Checkboxes',
    '#options' => array(
      1 => 'one',
      2 => 'two',
      3 => 'three',
      4 => 'four',
    ),
    '#default_value' => 2,
  );

The above throws the following error:

Warning: Invalid argument supplied for foreach() in form_type_checkboxes_value()
(line ... of /var/www/html/includes/form.inc).

This is because the #default_value for '#type' => 'checkboxes' is always expected to be provided in a form of an array. So in order to fix the above, the code should be changed to this instead:

-   '#default_value' => 2,
+   '#default_value' => array(2),

This always trips me, and although it makes sense in cases where multiple checkboxes from the #options need to be ticked, it feels silly to impose on developers when we can fix it for them.

See the following resources: - https://www.drupal.org/project/drupal/issues/3009881 - https://www.drupal.org/project/drupal/issues/1768464 - https://www.drupal.org/forum/support/module-development-and-code-questio...

GitHub Issue #: 
5836