2010-08-18 2 views
1

У меня есть следующая проблема: моя функция добавляет код в строку $ string ($ string. = Bla), но в начале строка пуста, поэтому я получаю это сообщение об ошибкеPHP Добавлять в пустую строку без ошибок

PHP-ошибка была обнаружена
Серьезность: Обратите внимание
сообщение: Undefined переменной: $ строка
Имя файла: библиотеки/file.php
Порядковый номер: 90

Конечно, если я определяю строку заранее, например $ string = NULL, ошибка не будет возникать, но , но я, возможно, есть способ добавить к строке без необходимости заранее определять переменную/! пустой проверка.

Это должна быть только одна строка, я ищу тонкий код.

Спасибо.

ответ

4

Тонкий код и устранение всех ошибок уровня уведомления обычно не идут рука об руку. Как вы знаете, ошибка заключается в использовании неинициализированной переменной. Вы не можете инициализировать его без ... инициализации.

Я бы не подумал, что $string = ''; раздувается.

+0

Ну, в отличие от этого $ string. = Bla; - $ string = NULL; $ string. = Bla; Я запускаю его через цикл foreach, поэтому мне нужно инициализировать его внутри, потому что на самом деле это массив с разными ключами, поэтому я не знаю всех используемых имен. –

1

Должно по-прежнему работать, его просто переводчик дает вам предупреждение. Вы можете подавить предупреждения в PHP, если вы хотите с:

error_reporting(E_NONE); 

Это сказал его вообще хорошая практика, чтобы объявить переменную первую, хотя и имеют предупреждения включено, пока вы тестируете.

+0

+1 «=». - И это даже не предупреждение, просто уведомление, которое является менее серьезным, чем предупреждение. –

+5

Отключение ошибок скрывает проблемы, не решает их. – Chris

2

Первый раз, когда вы используете переменную просто делать «=» не

$newVar = ""; //good 
$newVar2 .= ""; //bad 

$newVar .= ""; //ok because of good line 
+0

Спасибо, но я знаю все сказанное выше. Я знаю, почему я получаю ошибку, я знаю, как инициализировать, и я знаю, как скрыть ошибки (хотя, как сказано выше, скрытие - это не решение). Мне было просто интересно, есть ли способ написать плохую строку как хорошую. Я предполагаю, что мне нужно пойти на уродливый путь и инициировать. Спасибо, хотя. –

+2

Инициализация не является «уродливым» способом. Это * правильный * способ. Инициализируйте все свои переменные. Привыкай к этому. – Jason

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