in this function

function form_set_error(){


There is a condition:

if (isset($name) && !isset($form[$name])) {

return $form;

But normally the condition seems hard to understand


Because we normally use the element name in the form, and it seems working well.

for example,


Jaypan’s picture

The variable name $form is misleading here, as it is not referring to a form element. Look at this bit of code further down the function:

if ($record) {
  $form [$name] = $message;
  if ($message) {
    drupal_set_message($message, 'error');

$message is the error message. $name is the key of the form element to which the error should be applied. So they are using $form[$name] to store error messages.

So back to your original question:

if (isset($name) && !isset($form[$name])) {

This is saying 'if $name is set, and a message hasn't been saved to $form[$name]'.

Currently looking for employment in Canada, USA or Asia. My portfolio is at Jaypan, and you can checkout my Japan podcasts.
qqboy’s picture

you are exactly totally right. thanks.

thank you.