PHP - How to remove this undefined array index with list

182 views Asked by At

I have the following code on my page:

if (variable_get('ds_extras_fields_extra')) {
    $fields = explode("\n", variable_get('ds_extras_fields_extra_list', FALSE));
    foreach ($fields as $field) {
      $field = trim($field);
      if (!empty($field)) {
        list($entity, $bundle, $field_name) = explode('|', $field);
        $extra[check_plain($entity)][check_plain($bundle)]['display'][$field_name] = array(
          'label' => drupal_ucfirst(str_replace('_', ' ', check_plain($field_name))),
          'description' => drupal_ucfirst(str_replace('_', ' ', check_plain($field_name))),
          'weight' => 0,
        );
      }
    }
}

I keep getting an undefined error randomly that occurs as a PHP Notice on the page, I just want to not see this error anymore... Preferrably, I can fix undefined errors by just checking isset(), but not sure how to do it on a php list language construct.

The error occurs on this line here:

list($entity, $bundle, $field_name) = explode('|', $field);

And shows as follows:

Notice: Undefined offset: 2 in ds_extras_field_extra_fields() (line 514 of /sites/all/modules/ds/modules/ds_extras/ds_extras.module).

2

There are 2 answers

7
Stijn van Grinsven On BEST ANSWER

How about error_reporting or the @ instructor? http://www.php.net/manual/en/security.errors.php

Only suggested as you do not want to change anything. I do not suggest to actually use it, just fix your issue:)

0
user3168909 On

error_reporting(E_ALL ^E_NOTICE ^E_WARNING);

You can try at the top of your script. it will disable all notifications and warning.