Я второй "ПРОХОЖДЕНИЕ" ответ, за исключением того, что тесты ДОЛЖНЫ полагаться друг на друга!!!
, Почему?
DRY - не Повторяет Себя - относится к тестированию также! Тестовые зависимости могут помочь 1) сохранить время установки, 2) сохранить ресурсы приспособления и 3) точно определить к отказам. Конечно, только, учитывая, что Ваша среда тестирования поддерживает первоклассные зависимости. Иначе я признаю, они плохи.
isset ($ description)
вернет значение true, потому что $ description все еще остается установлен, даже если его значение «пусто». Что вам нужно использовать, так это пустой .
if (empty($description)) {
echo "No description available";
} else {
echo $description;
}
Используйте функцию mysql_affected_rows
:
$qtd = mysql_affected_rows($result);
Это зависит от того, что вы имеете в виду.
mysql_result возвращает FALSE
в случае сбоя, что произойдет, если вы укажете недопустимый (строка, поле). Чтобы проверить это, вы можете использовать оператор идентичности ===
, который проверяет и значение, и тип. Оператор равенства ==
, функция empty ()
и условная оценка оператора if проверяют значение, но не тип.
Это означает, что при использовании одного из этих методов нет никакой разницы между различными значениями, которые все равны Boolean FALSE
, например, пустые строки, пустые массивы, строка '0'
и значение NULL
.
Поэтому, если вы хотите быть по-настоящему внимательным, вы можете сделать что-то вроде следующего:
if ($description === FALSE) {
throw new Exception("The row $i was out of range in query $query.");
} else if ($description === NULL) {
// assuming that the description field has a default value of NULL
// * this one I'm not sure about.. the documentation for mysql_result claims
// that it returns a string, so this may never happen.
// It's left as an exercise for the reader.
throw new Exception("Uninitialized value in result row $i of db query $query");
} else if ($description === '') {
echo "No description available";
} else {
echo $description;
}
Поскольку empty ()
возвращает true
при таком же наборе условий, что и равенство ( ==
) с FALSE
, эта более строгая проверка типа будет особенно важна в случаях, когда результат может быть «0»
.
По-видимому, мне не разрешено размещать более одной гиперссылки, поэтому я не мог ссылаться на документацию по операторам сравнения (" http: // php.