Birinchi dastur — PHP teglari, echo, izohlar, php -S server
Muammodan boshlaylik
PHP o'rnatildi. Endi savol: kodni qayerga yozamiz va qanday ishga tushiramiz? Python da python fayl.py deb yozasiz. PHP da ikki yo'l bor — terminal orqali va brauzer orqali. Ikkalasini ham ko'ramiz.
Birinchi fayl
salom.php nomli fayl yarating:
<?php
echo "Salom, dunyo!";
Terminalda ishga tushiring:
php salom.php
Natija:
Salom, dunyo!
Tabriklaymiz — birinchi PHP dasturingiz ishladi.
<?php tegi nima?
PHP fayli aslida oddiy matn fayl. PHP uni o'qiydi va faqat <?php ... ?> orasidagi qismni kod deb biladi. Qolgan hammasi — qanday bo'lsa shunday chiqariladi.
Bu oddiy matn — o'zgarishsiz chiqadi.
<?php echo "Bu esa PHP chiqargan matn."; ?>
Yana oddiy matn.
Natija:
Bu oddiy matn — o'zgarishsiz chiqadi.
Bu esa PHP chiqargan matn.
Yana oddiy matn.
Aynan shu xususiyat PHP ni HTML ichiga yozishga imkon beradi.
Muhim qoida: agar fayl faqat PHP koddan iborat bo'lsa — oxiridagi ?> ni yozmang.
<?php
echo "Salom";
// ?> yozilmaydi — fayl shunchaki tugaydi
Nima uchun? ?> dan keyin tasodifan qolgan bo'sh joy yoki yangi qator ham brauzerga yuboriladi. Bu keyinchalik header() bilan ishlaganda tushunarsiz xatolarga sabab bo'ladi. Shuning uchun PSR-12 standarti yopuvchi tegni tashlab ketishni talab qiladi.
echo va print
Ekranga chiqarishning asosiy usuli — echo:
<?php
echo "Salom";
echo "Bir", " nechta", " qism"; // vergul bilan bir nechtasini chiqarish mumkin
echo "\n"; // yangi qator (terminalda)
print ham bor — deyarli bir xil, lekin faqat bitta qiymat oladi:
<?php
print "Salom";
Amalda hamma echo ishlatadi. print ni bilsangiz yetarli.
Har bir buyruq ; bilan tugaydi. Unutsangiz:
<?php
echo "Birinchi"
echo "Ikkinchi";
// Parse error: syntax error, unexpected token "echo", expecting "," or ";"
Xato keyingi qatorda ko'rsatiladi — chunki PHP ; yo'qligini faqat keyingi so'zni ko'rganda tushunadi. Xato xabari kelgan qatordan bir qator yuqoriga ham qarang.
Izohlar (comments)
Izoh — PHP e'tiborsiz qoldiradigan matn. Kodni tushuntirish uchun yoziladi.
<?php
// Bir qatorli izoh
# Bu ham bir qatorli izoh (kamroq ishlatiladi)
/*
Ko'p qatorli izoh.
Bir nechta qatorni egallaydi.
*/
/**
* DocBlock — funksiya va classlarni hujjatlash uchun.
* Muharrirlar buni o'qib, maslahat ko'rsatadi.
*/
echo "Izohlar natijaga ta'sir qilmaydi";
Brauzerda ishga tushirish — php -S
PHP ichida kichik veb-server bor. Apache o'rnatmasdan ham sinab ko'rish mumkin.
index.php fayl yarating:
<!DOCTYPE html>
<html>
<head>
<title>Mening sahifam</title>
</head>
<body>
<h1>Salom!</h1>
<p>Hozir soat: <?php echo date('H:i:s'); ?></p>
</body>
</html>
Shu papkada terminalni oching:
php -S localhost:8000
Brauzerda http://localhost:8000 ni oching. Sahifani yangilang — soat har safar o'zgaradi. Bu — dinamik sahifa.
Endi brauzerda Sahifa kodini ko'rish (Ctrl+U) ni bosing. U yerda <?php ni topa olmaysiz — faqat tayyor soat raqamlari bor.
[!WARNING]
php -Sfaqat o'rganish va sinash uchun. Haqiqiy saytni u bilan ishga tushirmang — u bir vaqtda bitta so'rovni bajaradi va xavfsizlik uchun sozlanmagan.
Qisqa yozuv: <?=
HTML ichida bitta qiymatni chiqarish juda ko'p uchraydi. Buning uchun qisqa yozuv bor:
<p>Hozir soat: <?php echo date('H:i'); ?></p>
<!-- aynan bir xil natija: -->
<p>Hozir soat: <?= date('H:i') ?></p>
<?= — bu <?php echo ning qisqartmasi. Shablonlarda (HTML qismlarda) shuni ishlatish odat.
Tez-tez uchraydigan xatolar
Faylni brauzerda to'g'ridan-to'g'ri ochish:
index.php ni ikki marta bosib brauzerda ochsangiz — manzil file:///C:/... bo'ladi va PHP kodi matn sifatida ko'rinadi. PHP ishlashi uchun fayl server orqali (http://localhost...) ochilishi kerak.
.html kengaytmasi:
sahifa.html ← PHP kodi bajarilmaydi
sahifa.php ← to'g'ri
Server faqat .php fayllarni PHP ga beradi.
Qo'shtirnoqni yopmaslik:
<?php
echo "Salom;
// Parse error: syntax error, unexpected end of file
Xulosa
Eslab qoling:
- PHP kodi
<?phpbilan boshlanadi; faqat PHP bo'lgan faylda?>yozilmaydi echo— ekranga chiqarish; har bir buyruq;bilan tugaydi//,#— bir qatorli,/* */— ko'p qatorli izohphp fayl.php— terminalda,php -S localhost:8000— brauzerda ishga tushirish<?= ... ?>— HTML ichida qiymat chiqarishning qisqa yo'li
Keyingi dars
3-dars: O'zgaruvchilar — $ belgisi, nom qoidalari, var_dump()