Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как упростить выражение, $a=isset($_GET['a'])?$_GET['a']:false  
:(
    Опции темы
BuShaRt
Дата 4.5.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



GZep
Еще как поспорю, не раз на форуме поднимался вопрос о некомпетентности авторов книг. 

Интервью с Леонидом Лукиным
Цитата

О сертификации Zend уже было многое сказано, но не могли бы Вы нам еще раз рассказать,
что она собой представляет? Где и как можно записаться на сдачу экзаменов, сколько стоит
прохождение и подготовка, как к ним готовиться, в чем заключается сам экзамен, какие
сложности при сдаче, какие советы вы можете дать?


Вот выдержка из ответа
Цитата

Для успешной подготовки к экзамену я бы рекомендовал использовать ряд официальных учебных
пособий - Zend PHP Certification Study Guide и Zend PHP Certification Practice Test Book,
приобрести которые можно во многих электронных магазинах и на сайте компании Zend.
Личное мнение об экзамене – экзамен не сложный, однако не стоит рисковать, если вы не имеете
хотя бы годичного опыта работы с технологией PHP и не работали с официальной документацией,
опубликованной на www.php.net. К сожалению, обычная литература, и об этот я уже упоминал, не
позволит вам успешно сдать этот экзамен. Тем более что ни один из отечественных авторов книг
по PHP еще не смог сдать такой экзамен.





WolfON
Ну, я об этом упомянул выше, но по суте и на этапе откладки нужно писать так, чтоб ошибок не было ;)
PM MAIL   Вверх
GZep
Дата 4.5.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



BuShaRt, вот скажите:
мы проверяем, передаются ли данные из формы или клиент ничего не передает.

Какие тут могут быть ошибки???? Причем тут ошибки? Может типа такого: "не могу определить, ты нажал кнопку под формой ввода данных или нет? не пойму никак?" или вот такие ошибки: "неизвесная функция 'isset'! ". Причем тут ошибки?

Выражения:
Код

if (isset($VAR) && !empty($VAR)) ...

и
Код

if (@$VAR) ...

эквивалентны. Более того ниодно из них не генерирует ошибок.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BuShaRt
Дата 4.5.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



GZep
@ - не может генерировать ошибок, как и system('rar e arhiv >nul'); не выводит сообщений smile
Но ведь >nul не глушит вывод в бинарнике, а лишь переадресовывает вывод в пустоту smile
PM MAIL   Вверх
GZep
Дата 4.5.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(BuShaRt @  4.5.2007,  17:14 Найти цитируемый пост)
@ - не может генерировать ошибок

так нам это и нужно.

З.Ы. вообщето может. smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BuShaRt
Дата 4.5.2007, 17:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Какие ошибки? 
Ошибка в том, что
Код

if (@$VAR) ...

Передает, null в if, а if работает только с true/false т.е. интрепритатор упрощая жизнь программисту принимает null, как false и генерирует нотейс, уповещяющий о том, что так делать нельзя!
Но вы оператором @ просто глушите вывод этого нотейса и интрипритатор молча делат за вас работу по изменению null на false...

Добавлено через 1 минуту и 8 секунд
Цитата(GZep @  4.5.2007,  17:18 Найти цитируемый пост)
З.Ы. вообщето может.  

Вот, если вы приведете пример, как @ выводит ошибку, я удалю все свои посты, извенюсь и дам вам плюсик smile
PM MAIL   Вверх
mishaSL
Дата 4.5.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



BuShaRt
GZepМодератор: вы далеко ушли от темы, если хотите обсудить правильность того или иного способа проверки входных данных для этого можно создать отдельную тему.

Добавлено через 3 минуты и 16 секунд
CyClon, по всей видимости тебе показалось smile  оператор & был с самого начала smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
GZep
Дата 4.5.2007, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(BuShaRt @  4.5.2007,  17:20 Найти цитируемый пост)
null, как false и генерирует нотейс

Цитата(BuShaRt @  4.5.2007,  17:20 Найти цитируемый пост)
глушите вывод этого нотейса

А почему бы не дать делать PHP за вас грязную работу? Тем более, что код от этого становится более красивым. Согласитесь, что isset + !empty - слишком длинно...
Цитата(BuShaRt @  4.5.2007,  17:20 Найти цитируемый пост)
Вот, если вы приведете пример, как @ выводит ошибку, я удалю все свои посты, извенюсь и дам вам плюсик

Yeah!
Вот, пожалуйста:
Код

<?php
error_reporting(E_ALL);
set_error_handler("error", E_ALL);

function error($no, $string, $file, $line) {
    //if (!error_reporting()) return;// А мы забыли эту строчку!!!
    echo "ошибка! \"no\" => $no \"string\" => $string \"file\" => $file \"line\" => $line<br />";
}


echo @$bla;
?>

 smile 

Это сообщение отредактировал(а) GZep - 4.5.2007, 17:30


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BuShaRt
Дата 4.5.2007, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



mishaSL
Ну почему же? Был предложен самый коротки вариант. Что самый короткий кажеться нет сомнений, вот мы думает, а надо ли его использовать?
все по теме ... или нет? smile
PM MAIL   Вверх
GZep
Дата 4.5.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



mishaSL, ничего, ибо теперь:
Цитата(BuShaRt @  4.5.2007,  17:20 Найти цитируемый пост)
я удалю все свои посты, извенюсь и дам вам плюсик

сообщений станет меньше... smile 



--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BuShaRt
Дата 4.5.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



GZep
Причем тут @, когда ошибка выводиться из-за несущестование константы к которой @ не как не относиться? smile

Вот, и не одной ошибки smile
Код

echo @$bla-@bla;

PM MAIL   Вверх
GZep
Дата 4.5.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



BuShaRt, я уже подправил код, посмотрите еще раз.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BuShaRt
Дата 4.5.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Код

Warning: Wrong parameter count for set_error_handler() in z:\home\localhost\www\test\index.php on line 3


Дубль три?

Добавлено через 2 минуты и 58 секунд
Более того, 

Код

<?php
error_reporting(E_ALL);
@set_error_handler("error", E_ALL);

function error($no, $string, $file, $line) {
    //if (!error_reporting()) return;// А мы забыли эту строчку!!!
    echo "ошибка! \"no\" => $no \"string\" => $string \"file\" => $file \"line\" => $line<br />";
}


echo @$bla;
?>


Собачка в действие smile Вывод ошибок = 0
PM MAIL   Вверх
GZep
Дата 4.5.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



включи в 5-ой версии, скорее всего 4-я версия не умеет принимать 2-ой параметр. Если нету 5-ой, то попробуй еще раз в 4-ой вот это:
Код

<?php
error_reporting(E_ALL);

function error($no, $string, $file, $line) {
    //if (!error_reporting()) return;// А мы забыли эту строчку!!!
    echo "ошибка! \"no\" => $no \"string\" => $string \"file\" => $file \"line\" => $line<br />";
}

set_error_handler("error");

echo @$bla;
?>



--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BuShaRt
Дата 4.5.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



GZep
Вы только, что доказали свою неправоту smile)))))

Интрипритатор отметил ошибку, но не вывел ее т.к. @ ее скарыла... После чего вы ее извлекли вручную smile))

Значит ошибка есть! Какие тут еще могут быть споры?



 smile 
И если вы так принципиально хотите, чтоб я удалили посты т.к. вы доказали, что вывод ошибок может быть и пре указанному @, то я вас огорчю, вы отметили, что @ может вывести ошику, а я свою очередь попросил пример, того как @ выведет ошибку...
В пример вы привели, то как ошибка возникает из-за необъявленной переменой, а вовсе не из-за @.
PM MAIL   Вверх
GZep
Дата 4.5.2007, 18:29 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(BuShaRt @  4.5.2007,  17:53 Найти цитируемый пост)
но не вывел ее т.к. @ ее скарыла...

Нет, не вывел потому что я взял на себя обязанность обрабатывать ошибки и не согласился с тем, что @ должен блокировать ошибки.
Цитата(BuShaRt @  4.5.2007,  17:53 Найти цитируемый пост)
В пример вы привели, то как ошибка возникает из-за необъявленной переменой, а вовсе не из-за @

ха-ха, ну ты даешь! Браво! Кроме того необявленную переменную я взял для примера, чтобы показать, что можно добиться того, чтобы @ не скрывал ошибку. И я это сделал.

Ну, если тебе так хочется, чтобы @ вызвал ошибку, то пожалуйста:
Код

<?php
@ //ошибка!
?>



--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1289 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.