Birinchi dastur — PHP teglari, echo, izohlar, php -S server

~12 daq · PHP · Kirish va Asoslar

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 -S faqat 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 <?php bilan boshlanadi; faqat PHP bo'lgan faylda ?> yozilmaydi
  • echo — ekranga chiqarish; har bir buyruq ; bilan tugaydi
  • //, # — bir qatorli, /* */ — ko'p qatorli izoh
  • php 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()