PHP keng tarqalgan dasturlash tili bo’lib, u o’z sintaksisiga ko’ra C va Perlni eslatib yuboradi.
C programmisti PHPni juda tez o’rganib oladi. PHPdan GNU C standartida mavjud bo’lgan deyarli barcha operator va funksiya mavjud. Masalan, sikllar (while, for), tanlov operatorlari (if, switch), fayllar tizimi va protsessor bilan ishlash funksiyalari(fopen, *div, stat, unlink, popen, exec), chiqarish va qabul qilish funksiyalari(fgets, fputs, printf) va boshqalar…
Ma’qola maqsadi – PHPni asosiy sintaksisi bilan tanishtirish.
PHP va HTML
Har qanday til sintaksisini o’rganishda eng qulay yo’l bu missol orqali tushuntirish bo’lsa kerak. Shunday ekan misollar orqali ko’rib chiqamiz:
<html>
<head>
<title>Namuna</title>
</head>
<body>
<?
echo «Salom, men – PHP skriptman!»;
?>
</body>
</html>
Bu oddiy skript PHPda dasturlashni o’rganish uchun birinchi qadamiznigz ekanligini tushunib yettingiz deb o’ylayman.
Etibor bering HTML kod PHP interpretatori bilan qo’llanmoqda.
Ssenariy boshlanishi sizni o’ylantirishi mumkun: – Bu o’zi ssenariymiz? <html> <body> teglari qayerdan keldi?
PHPni qulayligi ham shunda. PHP hujjat HTMLdan umuman farq qilmasligi ham mumkun.
PHPda ssenariy <? tegi bilan boshlanib, ?> tegi bilan tugaydi. Bu ikkla teg ichida tekst dastur sifatida qayta ishlanadi va HTML hujjat tarkibiga qo’shilmaydi. Agar biron narsani ekranga uzatish kerak bo’lsa echo operatoridan foydalaniladi.
Demak, PHPdan mahsus teglar (<? ?>) orasida bo’lmagan har qanday matn brauzerga to’g’ridan to’g’ri uzatiladi. PHPni Perl va Cdan asosiy farqi ham shunda. Perl va Cda chiqarish faqat standart operatorlar orqali amalga oshiriladi.
[b]Qo’llanmalarni ajiratish[/b]
Qo’llanmalar C va Perl kabi ajiratiladi – har bir so’rov nuqtali vergul orqali tuganlanadi.
Yakunlash tegi (?>) ham qo’llanma yakuni sifatida qabul qilinadi:
[code]
<?php
echo «Bu matn»;
?>
<?php echo «Bu ham matn» ?>
[/code]
[b] PHP skriptlardagi izohlar [/b]
Har qanday skriptni izohlarsiz yozish imkoni yo’q.
PHPda uch hil izoh turi bor. Misollarda ko’rib chiqamiz:
[code]
<?php
echo «Bu matn»; // Bu C++ stilidagi bir qatorlik izoh
/* Bu ko’p
qatorli izoh */
echo «Bu ham yana bitta matn»;
echo «Ohirgi matn»; # Unix qobig’idagi izoh
?>
[/code]
Bir qatorlik izohlar izoh oldidan nima kelishiga qarab qator ohirigacha yoki PHP-blok ogirigacha amal qiladi.
[code]
echo ‘<h1>Bu’;
# echo «oddiy»;
echo ‘namuna.</h1>’;
[/code]
Yuqoridagi sarlovga ‘Bu namuna’ deb ekranga chiqaradi.
C stilidagi ko’p qatorli izohlarda katta blokni izohga olishda e’tiborli bo’ling. Izoh ichida izohni bo’lisi xatolikga olib keladi:
[code]
<?php
/*
echo «Bu matn»; /* Bu izoh xatolikga olib keladi */
*/
?>
[/code]
Bir qatorlik izohlar izoh oldidan nima kelishiga qarab qator ohirigacha yoki PHP-blok ogirigacha amal qiladi. Yani, HTML-kod // ?> belgilaridan kegin chop etiladi. ?> belgisi PHP rejimidan chiqaradi va HTML rejimiga qaytaradi. Lekin, // belgisi bunday qilishga imkon bermaydi.
[b] PHPdagi o’zgaruvchilar [/b]
O’zgaruvchilar $ belgisi bilan boshlanadi. «Salom, men – PHP skriptman!» so’zini quyidagi yo’l bilan ham hosil qilsa ham bo’ladi:
[code]
<?php
$yozuv = «Salom, men – PHP skriptman!»;
echo $yozuv;
?>
[/code]
PHPdagi o’zgaruvchilar haqida batafsilroq kelgusi ma’qolalarda yozaman.
PHPdagi ma’lumotlar turi
PHP sakkizda ma’lumotlar turlarini qo’llab quvvatlaydi:
To’rta skalyar tur:
– boolean (ikkilamchi ma’lumot)
– integer (butun son)
– float (o’zgarib turuvchi nuqtali son yoki ‘double’)
– string (qatorlar)
Ikkita aralash tur:
– array (massivlar)
– object (obektlar)
Ikkita maxsus tur:
resource (resurslar)
NULL («bo’sh»)
Bir necha turlixillar ham mavjud:
– mixed (aralash)
– number (son)
– callback (qayta chaqiruv)
PHPdagi ma’lumotlar turlari bilan to’liqroq kelgusi ma’qlolalarda yozaman.
[b] PHPdagi ifodalar [/b]
Ifodalarning asosiy formatlari konstantalar va o’zgaruvchilar. Masalan, agar siz «$a = 100» deb yozsangiz $a o’zgaruvchisini 100 ga tenglashtirgan bo’lasiz:
[code]
$a = 100;
[/code]
Ko’rsatilgan namunada $a – bu o’zgaruvchi, = – bu miqdor berish operatori, 100 esa ifoda hissoblanadi.Uning miqdori 100.
Ifoda o’zgaruvchi bo’lishi ham mumkun. Agar unga qiymat qo’yilgan bo’lsa:
[code]
$x = 1;
$y = $x;
[/code]
Namunadagi borinchi qatorda ifoda 1 ko’rsatilgan. Ikkinchida esa $x o’zgaruvchisi ifoda sifatida ko’rsatilgan. Unga oldinroq 1 qiymatini bergan edik. Demak, $y = $x ham ifoda hissoblanadi.
Ifodalar haqida to’liq kegingi ma’qolalarda yozib o’tman.
[b] PHPda operatorlar[/b]
Operatorlar bir yoki bir nechta qiymatga ega bo’lib, yangi ifoda berish mumkun bo’ladi.
[b]PHP operatorlari namunalarda:
Tegnlashtirish operatorlari:
[code]
<?php
$a = ($b = 4) + 5; // natija: $a 9 qiymati bilan kiritilgan, $b o’zgaruvchisi esa 4 ga teglashtirilgan.
?>
[/code]
Kombinatsiyalashgan operatorlar:
[code]
<?php
$a = 3;
$a += 5; // $a ga 8 qiymatini beradi. O’hshash yozuv: $a = $a + 5;
$b = «Hello «;
$b .= «There!»; // $b ni «Hello There!» sifatida o’rnatadi. Mana bunda ham $b = $b . «There!»;
?>
[/code]
Qatorli operatorlar:
[code]
<?php
$a = «Hello «;
$b = $a . «World!»; // $b «Hello World!» qatorini o’z ichiga oladi
$a = «Hello «;
$a .= «World!»; // $a «Hello World!» qatorini o’z ichiga oladi
?>
[/code]
Yana logik va tenglashtirish operatorlari ham mavjud.
PHP operatorlari haqida to’liq keginroq yozaman.
[b]PHP tilini boshqaruv konstruksiyalari[/b]
PHP tilining asosiy konstuksiyalari quyidagilar:
Shartli operatorlar (if, else);
Sikllar (while, do-while, for, foreach, break, continue);
Tanlov konstruksiyalari (switch);
E’lon kontruksiyalari (declare);
Miqdorni qaytarish konstruksiyalari (return);
Bog’lanish konstruksiyalari (require, include).
PHP tilining boshqaruv konstruksiyalari namunalarda:
[code]
<?php
if ($a > $b) echo » a ning qiymadi, b nikidan katta»;
?>
[/code]
Ko’rsatilgan namunada if konstruksiyasi tenglashtirish operatori bilan qo’llanilgan
[code] ($a > $b). [/code]
Kelgusi namunada agar $a nolga teng bo’lmasa «$a ning qiymati to’g’ri (true)», yani ifi shartli operatorini logik operatorlar bilan ishlashi keltirilgan:
<?php
if ($a) echo «aning qiymati to’g’ri (true) «;
?>
Mana while sikli haqida:
<?php
$x=0;
while ($x++<10) echo $x;
// Ekaranlashtiradi 12345678910
?>
Bu haqida to’liq kelgusi ma’qolalarda
[b] PHPdagi foydalanuvchi funksiyalari[/b]
Har bir tilda ichki programmalar mavjud. C tilida ular funksiyalar deb nomlanadi, assemblerda ichki programmalar, Pascalda esa ichki programmalarning ikki turi mavjud: protsiduralar va funksiyalar.
PHPda esa bunday ichki programmalar foydalanuvchi funksiyalari deb nomlanadi.
Ichki programma – bu maxsus tarda programmaning istalgan joyidan mujoat qilish imkoniyatini yaratuvchi programmalar fragmentini hujjatlashtirish. Ichki programmalar dasturchi ishini ancha osonlashtiradi. Kodni o’qilishini ham anchayin yengillashtiradi. Bir kodni bir necha marota yozmaslikka yordam beradi.
Foydalanuvchi funksiyalariga namuna keltiramiz:
[code]
<?php
function funct() {
$a = 100;
echo «<h4>$a</h4>»;
}
funct();
?>
[/code]
Ssenariy 100 sonini chiqaradi.
[code]
100
[/code]
PHPda foydalanuvchi funksiyalari orqali argumentlarni yuborib, funksiyani qaytgan qiymatini qabul qilish mumkun.
Bu haqida to’liqroq kelgusi ma’qolalarda…
[b]PHPning standart funksiyalari[/b]
PHPda turli topshiriqlarini bajarish uchun standart funksiyalar mavjud.
Bu funksiyalarning to’liq jadvalini tez orada joylab chiqaman.
OOP va PHP
PHP object-oriented programmin(Ob’ektga yo’naltirilgan dasturlash)ni juda yahshi qo’llab quvvatlaydi.
PHPda juda aniq darajadagi klasslar va ob’ektlar yaratish mumkun.
Mana PHP klassga namuna va uning ishlatilishi:
[code]
<?php
// Yangi Coor deb nomlangan klass yaratamiz:
class Coor {
// ma’lumotlar:
var $name;
// metodlar:
function Getname() {
echo «<h3>KING</h3>»;
}
}
// Coor klassiga obekt yaratamiz:
$object = new Coor;
// Klass qisimlariga bog’lanamiz:
$object->name = «Mahmudjon»;
echo $object->name;
// ‘Mahmudjon’ deb yoziladi
// Endi klassning metodlariga bog’lanamiz (klass ichidagi funksiyalarga):
$object->Getname();
// ‘KING’ deb katta harflar bilan yozadi
?>
[/code]
Bu haqida to’liq kegingi ma’qolalarda yozaman. Agar bu ma’qola foydalanuvchilarni qiziqtirsa albatda kelgusilari ham bo’ladi.
Albatda bu ma’qolada PHP sintaksisi bo’yicha to’liq ma’lumot berilmagan. Lekin, ayrim foydali ma’lumotlarga ega bo’ldingiz deb o’ylayman…