2014-01-07 42 views
1

我已經在我的網頁下面的代碼:PHP - 如何消除這種不確定的數組索引與列表

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, 
     ); 
     } 
    } 
} 

我不斷收到一個未定義的錯誤隨機出現在頁面上的PHP的通知,我只想再也看不到這個錯誤了......我可以通過檢查isset()來修復未定義的錯誤,但不知道如何在php list語言結構上執行此操作。

該錯誤發生在這條線的位置:

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

,並顯示如下:

注意:未定義偏移:2 ds_extras_field_extra_fields()(行 514 /位點/所有/模塊/ DS /模塊/ ds_extras/ds_extras.module)。

+0

'if(isset(variable_get('ds_extras_fields_extra'))){' – Peon

+0

'variable_get'函數沒有什麼錯。它被使用數百萬次,並且工作完美。 –

回答

0

error_reporting或@ instructor如何? http://www.php.net/manual/en/security.errors.php

只建議你不想改變任何東西。我不建議實際使用它,只是解決你的問題:)

+0

現在不想禁用error_reporting。但是,我可以在哪裏放置'@'指導員來刪除錯誤提示? –

+1

(...)= explode(..);碼。 –

+0

謝謝,我原來沒有想到這件事。奇蹟般有效! –

0

error_reporting(E_ALL^E_NOTICE^E_WARNING);

您可以嘗試在腳本的頂部。它將禁用所有通知和警告。