if (empty($_POST['qty']))
return false;
$qty = (int) $_POST['qty'];
$_POST['qty']
будет равен «0.0», «000», " 0 " и т.п., то результат сравнения будет отличаться для двух Ваших примеров):$qty = isset($_POST['qty']) ? (int) $_POST['qty'] : 0;
if (!$qty)
return false;
$_POST[qty]
вместо $_POST['qty']
, т.е. используется значение константы (и лишь из-за того, что такая константа не определена, используется её имя, а не значение). @$_POST['qty'] == ''
). Второй пример кода, на мой взгляд, хуже, т.к. я считаю, что использование присвоения в выражении условия ухудшает читабельность кода. Плюс, примеры кода у Вас не равнозначны. $startTime = microtime(true);
for ($i = 0; $i <= 10000; $i++)
{
(isset($_GET['aaa']) && $_GET['aaa'] == 'abc');
}
print number_format(microtime(true) - $startTime, 10) . "\r\n";
// 0.0010221004 секунд
$startTime = microtime(true);
for ($i = 0; $i <= 10000; $i++)
{
(@$_GET['aaa'] == 'abc');
}
print number_format(microtime(true) - $startTime, 10) . "\r\n";
// 0.0060720444 секунд
$_GET['aaa'] = 'abc';
$startTime = microtime(true);
for ($i = 0; $i <= 10000; $i++)
{
(isset($_GET['aaa']) && $_GET['aaa'] == 'abc');
}
print number_format(microtime(true) - $startTime, 10) . "\r\n";
// 0.0012769699 секунд
$startTime = microtime(true);
for ($i = 0; $i <= 10000; $i++)
{
(@$_GET['aaa'] == 'abc');
}
print number_format(microtime(true) - $startTime, 10) . "\r\n";
// 0.0018811226 секунд
Оборачивать каждую функцию своим хендлером и потом его снимать — то еще извращение.
if (!isset($_GET['a'])) $_GET['a'] = null;
. Директива register_globals в PHP 5.4 удалена полностью, поэтому с ней проблем больше нет. Обычные переменные, размещённые в глобальной области видимости, следует всё же инициализировать всегда, чтобы исключить случайную инициализацию в каком-либо из подключённых файлов. Сестринские селекторы («div+div», «div~div»), а так же некоторые псевдоклассы (":first-child", ":last-child" и т.п.) учитывать, видимо, не понадобится, т.к. в HTML дереве (условно формируемому для селектора запроса) не будет сестринских элементов (только дочерние).
html>div+p>a
для которого будет формироваться условный HTML код <html><div></div><p><a></a></p></html>
.