PHP & mySQL написание и доработка скриптов (Консультации)

[Удален]
#11

Почти угадал, есть не ошибки а "странности"

- is_resource можно было просто убрать (данные места в любом случае возвращают либо ресурс либо false что для конструкций if вполне достаточно)

- Например функция chr вовсе тут не нужна, в данном случае проще было просто использовать "\t" и "\n" (chr надо использовать когда параметром служит переменная, иначе он просто заменяется типичными строками)

Это хоть и не ошибки, но я ожидал что это сразу бросится в глаза.

dkameleon
На сайте с 09.12.2005
Offline
386
#12
Зингельшухер:
Почти угадал, есть не ошибки а "странности"

так это уже претензии к индивидуальному стилю программирования :)

Дизайн интерьера (http://balabukha.com/)
[Удален]
#13
dkameleon:
так это уже претензии к индивидуальному стилю программирования

Это не стиль, это неразумное использование в первую очередь своего времени (ну и процессорных тактов, но на этом уровне скриптов это не важно)

dkameleon
На сайте с 09.12.2005
Offline
386
#14
Зингельшухер:
Это не стиль, это неразумное использование в первую очередь своего времени (ну и процессорных тактов, но на этом уровне скриптов это не важно)

в таком случае без разницы как использовать:

if (isset($_GET["id"])) {}

или

if (@$_GET["id"]) {}

но в то же время есть понятие правильного подхода и неправильного.

В данном задании имеем функцию: mysql_connect

Её возможные результаты: Returns a MySQL link identifier on success, or FALSE on failure.

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

Проверка успешности подключения в данном случае наиболее грамотно реализуется проверкой результата функции на соответствие требуемому типу: is_resource,

или на несоответствие булевому типу: !is_bool

А принудительное приведение типов - это от лукавого. Ввиду того, что ПХП позволяет свободную конвертацию, результаты могут быть иногда непредсказуемыми.

В качестве примера приведу аналогичную функцию, возвращающую разнотипные результаты, но с небольшим отличием - вместо ресурса возвращается целое число:

	if ($pos = strpos("abcdef", "abc")) {
echo("found");
} else {
echo("not found");
}

Так что у вас прослеживается явное неразумное НЕиспользование того, что должно быть использовано. ;)

dkameleon
На сайте с 09.12.2005
Offline
386
#15

дубль............

[Удален]
#16
dkameleon:
в таком случае без разницы

В этом случае разница есть, тут явная проверка против подавления ошибки (что само по себе грубейшая ошибка)

[Удален]
#17
dkameleon:
В качестве примера приведу аналогичную функцию

Это аналогичная но не эквивалентная, тут чуть чуть другая ситуация. (хотя очень похожая)

dkameleon
На сайте с 09.12.2005
Offline
386
#18
Зингельшухер:
тут чуть чуть другая ситуация

ситуация отличается единственным:

ноль интерпретируется как false

только код в вашей версии рискует потерять работоспособность, если результат функции mysql_connect будет расширен. скажем, потребуется возвращать код ошибки.

ПС. Самое сложное признать свою неправоту :))

Зингельшухер:
тут явная проверка против подавления ошибки (что само по себе грубейшая ошибка)

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

integer
На сайте с 01.02.2007
Offline
13
#19

😡😡😡😡😡

Недвижимость (http://tytdom.com) регионов Украины
Webit
На сайте с 13.12.2006
Offline
240
#20

ТС справился успешно с поставленной задачей по обработке скриптов за что ему респект большой!

Советую всем!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий