21 ошибка программиста PHP. Часть 1 - Использование устаревшего синтаксиса и функций

ОГЛАВЛЕНИЕ

15. Использование устаревшего синтаксиса и функций

Некоторые программисты вновь и вновь используют старые библиотеки и старые наработки. Например, код, написанный еще под PHP 2, до сих пор используется с PHP4, хотя уже начиная с версии PHP3 были добавлены стандартные функции, реализующие то же самое.

Использование устаревших функций и синтаксиса могут снизить скорость выполнения кода и, к тому же, сделать его нечитаемым. Другие программисты могут быть незнакомы со старыми функциями. Но тем не менее, если вы встретили участок старого кода, не обязательно его переписывать с учетом новых правил языка. Просто не надо его использовать при написании новых программ.

Пример использования старых языковых конструкций:

<?php

// Старый стиль

while (1):
print "5";
if ( $idx++ == 5 ):
break;
endif;
endwhile;

// Лучше написать так
// (впрочем, код можно оптимизировать)


while (1)
{
print "5";
if ( $idx++ == 5 ) {
break;
}
}

?>

Почему же следует следовать новым стандартам? Причины следующие:

  • Использование старых конструкций не очень распространено и, таким образом, новички в PHP будут в замешательстве, увидев два разных варианта синтаксиса.
  • Старый синтаксис отличается от синтаксиса других языков программирования, и, следовательно, при переходе с другого языка на PHP программисту будет сложнее понять и привыкнуть.
  • Но самое главное - в одной из новых версий, возможно, будет исключена поддержка старого синтаксиса, тем самым это заставит вас переписать код заново. Как бы то ни было, скобки всегда останутся частью языка PHP.

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