PHP Notice. Как с этим бороться?

_RVK_

Новичок
PHP Notice. Как с этим бороться?

Что то так и не пойму как правильно переменные инициализировать
PHP Notice: Undefined index: _issent in C:\server\home\offenders\www\phpform\phpform.php on line 95

В этой строке:
PHP:
   $this->_issent = $this->_VARS['_issent'];
свойство обьевленно в классе так:
PHP:
 var $_issent = false;
что нужно делать чтоб сообщение не появлялось кроме как изменить соответствующий параметр в php.ini

Вообще насколко такие сообщения опасны. Может не обращать внимания?
 

Demiurg

Guest
инициализируй _VARS['_issent'] до его использования.
 

RomikChef

Guest
объявлена-то переменная $_issent
а ругается на _VARS['_issent']
вот ее и надо объявлять
 

Larson

Новичок
Свойство-то объявлено, а массив _VARS объявлен?
var $_VARS['issent'] = "";
 

Demiurg

Guest
Олег, я конечно понимаю, что краткость - сестра таланта, но если человек не знает про @ то твой ответ ему ничего не даст. Даже если он окажется не совсем ленивым, и полезит в мануал, то он вряд ли там найдет что-то. Кроме того, надо не скрывать ошибки а исправлять их.
 

_RVK_

Новичок
А. Всё понял. Стоит ли обращать внимание на такие сообщения? Или переменные нужно инициализировать всегда.
 

Oleg Puzanov

Guest
2 Demiurg
оки.. буду иметь в виду
-------------------------------
2 Diesel
я знал что ты знаешь ))
 

RomikChef

Guest
@ - очень вредный оператор.
и бессмысленный.
если уж отключать нотайсы, то централизованно.
а собака подавит вообще все сообщения об ошибках, даже критических
 

Demiurg

Guest
>Или переменные нужно инициализировать всегда
всегда
 

_RVK_

Новичок
Решил проблемму так:
if (isset($this->_VARS['_issent']))
$this->_issent = $this->_VARS['_issent'];
Правильно?
 

_RVK_

Новичок
>@ - очень вредный оператор
Не совсем согласен. Он полезен если хочешь обрабатывать ошибки сам.
 

Demiurg

Guest
if (isset($this->_VARS['_issent']))
$this->_issent = $this->_VARS['_issent'];
else
$this->_issent = false; // или какой там у тебя тип
так правильней
 

RomikChef

Guest
ты не понмаешь, что такое обработка ошибок

@ не ОБРАБАТЫВАЕТ ошибки.
она их ПОДАВЛЯЕТ.
причем ВСЕ, разом, любые.

А обрабатывают ошибки по-другому.
 

Oleg Puzanov

Guest
2 RomikChef
он не выводит предупреждение только.
это ты имеешь в виду под словом ПОДАВЛЯЕТ ?
 

PhpDeveloper

Guest
Re: PHP Notice. Как с этим бороться?

Автор оригинала: Diesel
Что то так и не пойму как правильно переменные инициализировать
PHP Notice: Undefined index: _issent in C:\server\home\offenders\www\phpform\phpform.php on line 95

В этой строке:
PHP:
   $this->_issent = $this->_VARS['_issent'];
свойство обьевленно в классе так:
PHP:
 var $_issent = false;
что нужно делать чтоб сообщение не появлялось кроме как изменить соответствующий параметр в php.ini

Вообще насколко такие сообщения опасны. Может не обращать внимания?
Не нужно отключать notice'ы, нужно писать грамотный код
 

RomikChef

Guest
Oleg Puzanov, да.

Дизель.
как раз в ОБРАБОТКЕ сообщения об ошибках и помогают.
ошибку надо обрабатывать ДО ее появления, а не после.

проверять возможность записи в файл ДО записи.
проверять, была ли ошибка в запросе ДО использования результата.
вот это - обработка.

А когда ты влепляешь собаку - это подавление.
Сообщения об ошибках ДОЛЖНЫ БЫТЬ. Это как боль - сигнализирует человеку о неполадках в организме.

Эти сообщения надо обязательно внимательно читать и немедленно реагировать.
а писать программы не ЗАКЛАДЫВАЯ в них ошибки самому.
 

_RVK_

Новичок
Вот пример обработки ошибки.
@mysql_pconnect($host,$login,$password) OR $error = 'Error Ошибка соединения с БД!';

И теперь я это сообщение могу вывести где хочу и любым стилем. Если убрать @ то в случае ошибки PHP скажет:

Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user: 'ODBC@localhost' (Using password: NO) in c:\Program Files\PHP Expert Editor\php81.tmp on line 2

Это не красиво. Эта информация не нужна пользователю.
А вообще это тема отдельного топика.
 

_RVK_

Новичок
Не все ошибки можно предусмотреть. Хотя согласен что большенство из них можно(НУЖНО!) предупредить.
 
Сверху