2014-09-02 3 views
0

Я знаю много людей задают этот вопрос, но шахта не работает с:PHP Примечание: Undefined индекс: в строке

if(isset($instance['threadnumbers'] == "")){ $instance['threadnumbers'] == "" } 

Это показывает ошибки отладки на:

PHP Примечание: Не определено индекс: threadnumbers в /home/content/59/12158859/html/development/wp-content/plugins/dpt/disqus-ptw.php на линии 27

И эта область ниже:

if ($instance['threadnumbers'] == NULL) { 
    $instance['threadnumbers'] = "5"; 
} 

Как это исправить? Большое спасибо :)

ответ

2

У вас есть обрезание и вставка ошибки. Вы пытаетесь присвоить значение с помощью оператора сравнения. == должно быть =.

Вы также используете isset() по заданию.

if(isset($instance['threadnumbers'])){ $instance['threadnumbers'] == "" } 

должен быть

if(!isset($instance['threadnumbers']) || empty($instance['threadnumbers'])) { 
    $instance['threadnumbers'] = ""; 
} 
+0

Это первый раз, когда я видел разворот обычного задания как проблему сравнения. –

+0

Да, и на всякий случай, что-то еще ниже, '$ instance ['threadnumbers'] =" ";' <= –

+0

Это не решит ошибку. Посмотрите на мой ответ ниже. Проблема в том, что 'isset' возвращает логическое значение. Логическое значение по сравнению с пустой строкой может быть истинным, когда логическое значение 'false'. Поэтому, когда он не установлен, он все равно попадет в код if и выполнит код между скобками. – bzeaman

2

Заменить

if(isset($instance['threadnumbers'] == "")){ $instance['threadnumbers'] == "" } 

С

if(isset($instance['threadnumbers'])){ $instance['threadnumbers'] = "" } 

isset вернется true или false. Когда вы сравните его (==), false будет равно "".

Кроме того, $instance['threadnumbers'] == "" должен быть $instance['threadnumbers'] = "", так как вы хотите присвоить пустую строку переменной.

Смежные вопросы