Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разве собака не должна глушить ошибки?
 
 автор: tAleks   (04.02.2007 в 11:56)   письмо автору
 
 

Такой код:

@$f['stop_year'] == $i ? $select = ' selected' : $select = '';


$f['stop_year'] когда не определена, т.е. $f вобше нет, то PHP ругается про какие-то строки:

Uninitialized string offset: 0 in ..... в таком-то файле....

Разве собака перед несуществующей переменной не должна глушить все ошибки?

Странно... в других случаях, когда переменная не определена, и речь не идет о массивах этот работает... собака глушит ошичку... а когда массив то почему-то нет.....

   
 
 автор: cheops   (04.02.2007 в 11:59)   письмо автору
 
   для: tAleks   (04.02.2007 в 11:56)
 

А как точно выглядит сообщение об ошибке?

   
 
 автор: tAleks   (04.02.2007 в 12:01)   письмо автору
 
   для: cheops   (04.02.2007 в 11:59)
 

Так:

[04-фев-2007 13:54:57] PHP Notice: Uninitialized string offset: 0 in x:\home\site\www\users\orders.php on line 298


Строка 298:

@$f['stop_year'] == $i ? $select = ' selected' : $select = ''; 


Если ее закоментирую, то ошибку не выдает...

   
 
 автор: Poison   (04.02.2007 в 13:55)   письмо автору
 
   для: tAleks   (04.02.2007 в 12:01)
 

А что выше этой сроки?

   
 
 автор: tAleks   (04.02.2007 в 14:10)   письмо автору
 
   для: Poison   (04.02.2007 в 13:55)
 


<?php
foreach ($rus_months as $i => $month)
{
    @
$f['stop_year'] == $i $select ' selected' $select '';
    echo 
"<option value=\"$i\"".$select.">$month</option>\r\n";
}
?>

   
 
 автор: bronenos   (04.02.2007 в 14:29)   письмо автору
 
   для: tAleks   (04.02.2007 в 14:10)
 

Зачем собаками?
<? 
foreach ($rus_months as $i => $month

    
$select = ($f['stop_year'] == $i) ? 'selected' ''
    echo 
"<option value=\"$i\" $select>$month</option>\r\n"

?>

   
 
 автор: cheops   (05.02.2007 в 00:16)   письмо автору
 
   для: tAleks   (04.02.2007 в 12:01)
 

notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
 
 автор: Trianon   (04.02.2007 в 15:14)   письмо автору
 
   для: tAleks   (04.02.2007 в 11:56)
 

>Разве собака перед несуществующей переменной не должна глушить все ошибки?
Не должна.
Собака глушит ошибки при исполнении функций, перед вызовами которых её поместили.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования