Я столкнулся с некоторым примером кода, который выглядит так:
$form['#submit'][] = 'annotate_admin_settings_submit';
Почему есть скобка после ['#submit'], которая пуста без ничего внутри? Что это значит? Может ли кто-нибудь дать мне пример? Обычно (из моего понимания, которое, вероятно, неверно) заключается в том, что массивы имеют ключи, и в этом случае ключ массива $ form '#submit' равен 'annotate_admin_settings_submit', но что такое сделка со вторым набором скобок. Я видел примеры, в которых может выглядеть массив:
$form['actions']['#type'] = 'actions';
Я знаю, что это очень простой вопрос о php в целом, но я столкнулся с этим вопросом, изучая Drupal, поэтому, надеюсь, кто-то из сообщества Drupal может прояснить этот вопрос, который я одержим.
Когда вы говорите $form['actions']['#type'] = 'actions'
, он присваивает значение $form['actions']['#type']
, но когда вы говорите $form['#submit'][] = 'annotate_admin_settings_submit';
, если $form['#submit']
является массивом, он добавляет 'annotate_admin_settings_submit'
к концу, и если он пуст, это будет массив с одним единственным элементом, который является 'annotate_admin_settings_submit'
.
Пустые скобки означают, что когда строка добавляется в массив, php автоматически генерирует ключ для записи, а не указывается в скобках при заполнении массива. Итак, $form['#submit'][] = 'annotate_admin_settings_submit';
это то же самое, что $form['#submit'][0] = 'annotate_admin_settings_submit';
если вы впервые это сделаете. В следующий раз это будет $form['#submit'][1] = 'annotate_admin_settings_submit';
, и т.д.