Уроци по 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 ( ! условие ) изход; > // цялата функция > ?>
МИНЕТЕ НА
= "потребител123"; $iUserage = 20; $bUserdeleted = невярно; ?>