Уроци по PHP (според материалите на форума)

Красив скрипт или стилове на програмиране.

Тази глава също е написана тук с причина. Сценарият трябва да е красив. И е необходимо, колкото и да е странно, не за красота. Факт е, че много малко програми са написани веднъж завинаги и така, че веднага да работят както трябва. Красиво написан скрипт е много по-лесен за отстраняване на грешки и модифициране. Освен това по различни причини може да се наложи друг човек да работи с вашето творение. Красивият, добре написан код е много по-лесен за разбиране. Нека да разберем как трябва да изглежда красивият код. Първо, нека разгледаме кодовете с недостатъци, след което ще ги анализираме.

#4 for ( $i = 0 ; $i 5 ; $i ++) if ( $i % 2 ) echo $i ; ехо ' ' ; > ?>

Всички горепосочени скриптове са написани синтактично правилно, това са работещи скриптове.

Тук помислете за код #1. Всичко е написано тук. Толкова бързо: в какви случаи кодът извежда главно O? Не е лесно за намиране, нали? И ако кодът беше на много листа?

Какви са недостатъците на код номер 2, дори не е необходимо да се обяснява. Опитайте се да отговорите на същия въпрос като в предишния случай.

Недостатъкът на код #3 е, че ако го прегледате набързо, може да получите подвеждащото впечатление, че операцията за добавяне е първа, т.е. такова разположение на пространствата също го прави трудно разбираем.

В код #4 разделите показват, че етикетът „ “ се показва само когато условието е изпълнено, но ако погледнем фигурните скоби, можем да видим, че това не е така.

Особено упорити хора ще кажат за последните два примера, казват те, нищо подобно, всичко е ясно видимо: какво и как. Има защо. В големите кодове това отношение към структурата на кода може да излезе настрани през най-неочакваните места. Да, и малките.

Основни правила.

И така, какво се вижда от първия и втория пример, мисля, че не е необходимо да се казва.

Третият пример ни казва, че разстоянието трябва да е постоянно. Не трябва да има 2 интервала, тук 4, изобщо няма. Тук също си струва да се каже, че в дълги изрази

$b = $a + $c +$z + $f * $r + $e * $f + $a + $o

Операцията за умножение все още си струва да бъде взета в скоби, въпреки че все още е първата, която се изпълнява. Това ще направи кода по-лесен за четене. Още за интервалите:Винаги разделяйте запетаите и другите оператори с интервали от двете страни.

От 4-ти пример виждаме ролята на отстъпите. Отстъпът трябва да ни покаже влагането на програмни структури. Това означава, че всички изрази, вложени, например, в цикъл, трябва да започват на някакво еднакво разстояние от левия край, по-далеч от самия оператор на цикъла. Същото и с условията. Операторите от едно и също ниво на влагане трябва да са на същото разстояние от левия край.

Разстояние между скоби.

Има много стилове:

Използвам първия начин в блокове if, for и т.н., а втория начин, когато описвам функции. Харесвам първия начин, защото затварящата скоба е на същия вертикал като това, което отваря (в този случай, с оператора if), а първата скоба не създава ненужен (струва ми се, че ненужен) отстъп след if. За функции използвам втория начин, защото. да, дори не знам защо; така ми харесва. Не харесвам други начини поради големия брой раздели. Във всеки случай, затварящата къдрава скоба трябва да се появи сама на реда и трябва незабавно да е очевидно, че се затваря.

Имена на променливи, функции и класове.

Имената трябва да казват на програмиста каква е целта на променливата,функции и т.н. Какво можете да разберете, когато видите $a = 'Таблица' в средата на кода? Нищо по същество. Но $product = 'Table' вече ни казва за какво говорим. Същото с функциите: $r = g($a, $b) и $sum = add($serv_1, $serv_2). Видима разлика? Но не е нужно да давате на функции (по-точно, не се нуждаете от нищо) имена като add_first_service_and_one_more_s ervice_returning_their_summ_as_i nteger_value. Защо - да обясня?

Коментари.

ibase_connect($host, $user, $passwd); // свързване към базата данни на Interbase

= 1; // Задаване на променлива A на едно $b = 6 ; // Задаване на B на 6 // Преминаване през $i от 1 до 6 for ( $i = 1 ; $i $b ; $i ++ ) $ a = $a * $i ; // Умножение на A по $i ?>

// Намиране на факториел на число $b $a = 1 ; $b = 6 ; за ( $i = 1 ; $i $b ; $i ++ ) $a = $a * $i ; ?>

факторен фактор ($b) $res = 1; за ($i = 1; $i $b; $i ++) $res = $res * $i; ?>

Относно гнезденето.

Тук ще кажа само, че ситуации като

функция any_func () if ( условие ) // цялата функция > > ?>

По-добре е да ги опишете така:

функция any_func () if ( ! условие ) изход; > // цялата функция > ?>

МИНЕТЕ НА

  • Вероятно ще забравите как и в какъв случай сте извикали тази променлива. Придържайте се към един стил и няма да ви се налага да губите време в търсене на точното име на тази променлива.
  • За да улесните четенето в PHP, препоръчвам да поставите префикса на типа данни пред името на променливата (така наречената "унгарска нотация"). Това се дължи на факта, че в PHP няма изрична дефиниция на типа и такова именуване помага незабавно да се разбере към какъв тип принадлежи променливата:
  • = "потребител123"; $iUserage = 20; $bUserdeleted = невярно; ?>

  • Напишете скрипта, сякаш утре ще трябва да го промените. Опитайте се да мислите за него по такъв начин, че да е лесно за мащабиране.