Internet Derazalar Android
Kengaytirmoq

PHP sintaksisi. Kodeksda sharhlarni joylashtiring

PHP. (Gipertext Preprocessor.) - Server tomonidagi eng mashhur veb-dasturlash vositalaridan biri. PHP operatsiyasi eng sodda versiyada HTTPni qayta ishlashni talab qiladigan mijozlarga qisqartirildi. Talablarni qayta ishlash, o'z navbatida, so'rov parametrlariga muvofiq, so'rov parametrlariga muvofiq, bu belgi mijozga qaytariladi. Mijoz (Internet brauzer) odatdagi statik onlayn-jadvalni (tez-tez HTML kengaytmasi bilan talab qilganda), server unga ushbu sahifaning tarkibini "xuddi" o'zgarishsiz qaytaradi. Agar php sahifasi so'rasa, so'rovni qayta ishlashda, belgilangan sahifaning mazmuni birinchi marta PHP tarjimonida qayta ishlanadi va shundan keyingina mijozga yuboriladi.

Boshqa so'z bilan, PHP - bu gipertmatik preprocessorUning ismida aks etgan. Har tomongaprotsessor, chunki gipertmatnaning yakuniy qayta ishlash mijoz tomonida, biz brauzer oynasida (brauzerning o'zi allaqachon gipertmatik protsessor. Aytish mumkinki, PHP Gipertmatn generatori, chunki aksariyat hollarda uning ishi ma'lumotlar bazasining mazmuniga yoki serverda joylashtirilgan boshqa tuzilgan ma'lumotlar bo'yicha ishlarni amalga oshiradi. Qisqarish, masalan, gpp, masalan, gpp yoki boshqa yo'lda, chunki u avvalgidek shifrlangan deb qaraydi Shaxsiy uy sahifasi asboblari - Shaxsiy Internet sahifalarni yaratish uchun vositalar. Shunday qilib, shifrli PHPning birinchi versiyasi o'z maqsadi o'z maqsadini aks ettirdi va hozirgi operatsiya printsipi hisoblanadi.

PHP - bu dasturlash tiliDeyarli hamma narsani qo'llab-quvvatlaydi: o'zgaruvchilar, shartli operatorlar, tsikllar, funktsiyalar va boshqalar. PHP ob'ektga yo'naltirilgan dasturlash tili - Bu, shuningdek, odatdagi merosni qo'llab-quvvatlaydi. PHP veb-dasturlash tili, chunki birinchi navbatda dinamik Internet saytlarini rivojlantirish uchun yaratilgan va shuning uchun ushbu sohada ishlatiladigan ko'p miqdordagi echimlar mavjud, masalan:

  • qayta ishlash va qazib olish parametrlari hTTP so'rovlari Olish va post;
  • shakllantirish va jo'natish http boshlovkovi;
  • saqlash infratuzilmasi sessiya ma'lumotlari;
  • dasturiy ta'minot xizmatlari bilan ishlash cookie fayllari.;

    cookie fayllari. - Kirish parametrlari (login va parol) yoki shaxsiy foydalanuvchilar parametrlarini o'z ichiga olgan mijozning kompyuteridagi brauzer tomonidan saqlanadigan matnli matn ma'lumotlar. Cookie-fayllar brauzer tomonidan va avtomatik ravishda, har bir chekka aylanish paytida server HTTP so'rov sarlavhasiga yuboriladi.


  • fayllar bilan ishlash FTP protokoli;
  • ma'lumotlar bazalari bilan ishlash;
  • qo'llab-quvvatlash
  • qo'llab-quvvatlash Http avtorizatsiya;
  • elektron pochta almashinuvi va boshqalar.

Ushbu bo'limda oddiy veb-ilovalarni yaratish uchun PHP dasturining asosiy fikrlarini qisqacha ko'rib chiqishni rejalashtirmoqdaman. Materiallar bir nechta bo'limlarda tashkil etiladi, ularning har biri o'zlarining dastlabki kodlari bilan misollar keltiradi. Mustaqil eksperimentlar uchun, bu sizga to'liq kirish huquqiga ega yoki php o'rnatilgan boshqa saytlar o'rnatiladi.

PHP dasturiy asoslari

Belgilash uchun PHP kodini qo'shish va gipermatnni progrotsentining natijasi

PHP dasturiy kod xtml belgisini har qanday joyga yuboriladi. HTML belgisi umuman bo'lmasligi mumkin va sahifaning dastlabki kodini faqat php-dagi jumlalar bilan ifodalash mumkin. Qanday bo'lmasin, PHP-ni qo'shish uchun siz maxsus yorliqdan foydalanishingiz va dastur matnini ulashingiz kerak. Bu quyidagicha amalga oshiriladi:

dastur kodi ?>

PHP tarjimon bo'limi ishi paytida Dastur kodeksining ishlashi natijasida shakllangan belgilar bilan almashtirildi. Preprocessor natijasini ko'rsatish uchun operator ishlatiladi aks sado., ularning argumentlari doimiy, o'zgaruvchilar, funktsiyalar yoki turli xil ifoda va natijasi bo'lishi mumkin. Eng oson variant shunga o'xshash ko'rinishi mumkin:

"; ?>

Agar siz olingan sahifaning kodini brauzerda ochsangiz, unda php endi hech qanday php bo'lmaydi (agar, albatta, PHP tarjimoni serverga o'rnatilgan bo'lsa). Ushbu aks sado operatoridan unchalik ahamiyatga ega emas. FHPning butun jozibasi shundan iboratki, shakllangan HTML so'rov parametrlariga, ma'lumotlar bazasi, xavfsizlik siyosati va boshqa ko'p narsalar bilan bog'liq bo'lishi mumkin. Bularning barchasini tahlil qilish va qayta ishlash barchani, masalan, tsikllar, sharoitlar, funktsiyalar va boshqalarni tanishtirish orqali amalga oshiriladi. Oldin yugurib o'ting, men tsikl va shartli operator yordamida PHP-dagi dasturni, shuning uchun dastlabki ish haqi bo'yicha boshlang'ich g'oyasi yanada to'liq bo'ldi. Quyidagi dastur 1 dan 9 gacha fission risolalarning qiymatlarini ko'rsatadi.

PHP uchun misol dasturi ushbu belgi PHP dasturiy ta'minot tarjimoni tomonidan shakllanadi."; $ f \u003d 1; uchun ($ i \u003d 1; i<10; $i++) { if ($i>1) $ f \u003d $ f * $ i; Echo $ i, "! \u003d '$ F,
"; } ?>

Uning ishining natijasi quyidagicha brauzerga qaraydi:

1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=362880

Bir nechta php fayllaridan arizalar tashkil etish

Qisqa shartli yoki Ternar operator

Quyida Ternare operatoridan foydalanib shartli belgilangan operatorning umumiy ko'rinishi:
$ natija \u003d shartmi? Agar rost bo'lsa, ibora;

Misol:
$ Natija \u003d ($ a\u003e 5)? $ A + $ b: $ a- $ b;

Agar a 5 dan katta bo'lsa, natija o'zgaruvchisi A + B ga beriladi, aks holda A-b.

Agar operatorning ko'p sonli ko'p sonli bo'lsa, unga alternativa. Operatorlarning ijrosi qiymati bilan tanaffuslar jamoasi uchrashgunga qadar barcha keyingi ishda har qanday keyingi ishda to'g'ri kelishidan boshlanadi. Standart - shartli operatordagi boshqa bo'limga alternativa.

Tugmasini bosing ( ifoda) (Ish.) 1 qiymati 1.: 1 operator.; Ish. 2.: operator.; Ish. 3.: 3 operator.; Odatiy: odatiy operator amalga oshiriladi; ) bajaring. tsikl tanasi; Vaqt ( shart);

Misol bir xil:

$ i \u003d 2; $ f \u003d 1; Do ($ f \u003d $ f * $ i; i ++; echo $ i, ', $ F,'
";) ($ I<10);

Batafsilroq dor tsikl ... qachon Biz o'qiymiz.

Arra yoki erdan ajratish operatori

Massivlar haqida bir nechta so'zlar alohida va uning davridagi elementlarini qidirish uchun dizayn:

Har biriga ( massiv $ element) o'zgaruvchan elementdan nima qilayotgan joyni qaerda bo'lganini ifodalang;

$ Qiymat va massiv ("uchun", "," Do "," Forish "); Echo "PHP-dagi tsikllar:" "
"; Foreaect ($ $ bitim sifatida $) Echo $ operator,
";

Tsikllar va PHP selektsiya operatori, shuningdek boshqa ko'plab dasturlash tillari bo'yicha ko'rsatmalar sindirish - tsiklni erta tugatish va davom eting. - Velosipedning joriy amalga oshirilayotgan ereratsiyasini erta tugatish (tsiklning boshiga o'tish). Ular haqida ko'proq o'qing.

Sizning e'tiboringizga qisqacha qo'llanma dummiy uchun PHP tili Bir necha qismlarda. Biz kafolat beramiz, birinchi ishingiz PHP kodini yozing Siz ushbu seriyani (yoki o'qishda) o'qishingiz mumkin. PHP tili eng oddiy dasturlash tillaridan biri bu serverdir (server tomonida qatl etilgan) skript tilida (tushunarli til).

U veb-loyihalarni yaratish uchun ishlatiladi. To'g'ridan-to'g'ri HTML kodida ishlatilishi mumkin. Va skript operatsiyasi natijasi ko'pincha mijozning brauzerida ko'rsatiladi, faqat bitta brauzer PHP ishlash uchun etarli emas. Ya'ni, siz indeks.html faylida qilganingizdek, siz indeks.php faylini o'chira olmaysiz. PHP skriptlari va PHP yordamida yaratilgan veb-sahifalar veb-serverni talab qiladi.

Agar sizda saytingiz uchun platformada platforma bo'lmasa, men Loyiha sinovi uchun mo'ljallangan mahalliy serverda PHP stsenariylari bilan tajriba qilishni tavsiya qilaman. Windows operatsion tizimidagi mahalliy serverni tashkil qilish uchun (Windows-APSQL-PHP, Denver, Xampp, Appsev, Openserver va boshqalar) to'plamlarini tashkil qilish uchun foydali bo'lishi mumkin. Ushbu paketlarni o'rnatgandan so'ng, siz allaqachon sozlangan va foydalanishga tayyor serverni olasiz va u dasturning qulay menyusi orqali boshqariladi. Shuningdek, Windows operatsion tizimi uchun Apache, MySQL va PHP-ni alohida amalga oshirish, ammo ular ularni konfiguratsiya fayllari orqali o'z-o'zidan sozlashlari kerak va shomil bilan menyu bo'lmaydi. Ushbu serverni boshlash, qayta ishga tushirish va to'xtatish uchun siz ishga tushirish buyruqlari bilan * .bat yoki * .CMS yoki * .CMS yoki MySQL xizmatlaridan foydalanishingiz mumkin. Boshlang'ich boshlang'ich uchun uchinchi va eng qiyin, o'rnatilgan va sozlangan Linux operatsion tizimi (lampalar, linux-apache-mysql-php) bilan virtual mashinadir. Bunday "virtualok" ning tayyor rasmlari ko'pincha Internetda topiladi, shuning uchun siz faqat Virtualbox yoki VM dastur dasturlarining konfiguratsiyasini bilishingiz kerak.

Chekot uchun PHP tilida dasturlash uchun tayyorgarlik

  1. PHP kodi indeks.php fayliga joylashtirilishi kerak, faylning o'zi veb-serverda joylashgan saytning ildiz katalida joylashtirilgan bo'lishi kerak.

  1. PHP-dagi barcha kod disterlar o'rtasida tuzilishi kerak yoki qisqartirilgan variantAmmo bunday rekordning qisqartirilgan versiyasidan foydalanish uchun veb-server sozlanmagan bo'lishi mumkin, shuning uchun birinchi variant afzal.
  2. PHP kodini har qanday HTML-kodga kiritish mumkin.
  3. PHP kodini sharhlash quyidagicha:
// bir line sharhi # boshqa bitta bitta variant sharh / * ko'p
  1. Kodingizni ko'rish uchun veb-brauzerni va manzillar to'plamini oching, Enter: http: //lcalhost/www/myex/index.php

Dummy uchun PHP tili yordamida ekranga chiqish

  1. Ma'lumotlar chiqishi oynani (mijoz veb-brauzerli mijoz zonasi) aks-sado operatori yordamida amalga oshirilishi mumkin. Ushbu operator sizga har xil turlarni chiqarish imkonini beradi: raqamlar, belgi satrlari va boshqalar.
  2. Chiqish operatori sintaksis:
Echo element1, element2, element2, ..., Elementlar
  1. STR ma'lumotlari ikki yoki bitta tirnoqdan iborat. Ikki tirnoqlarda kodi PHP tomonidan izohlanadi. Yagona tirnoqlarga o'ralgan narsa hech qanday talqin qilmasdan chiqariladi. Misol:
< ?php $x="PHP"; //присвоение значения переменной echo "Привет","всем"; echo " "; echo "

Misol X kod

Misol X kod

  1. Dasturni tuzatish, Var_dump () funktsiyasini tuzatish paytida kerak bo'lgan o'zgaruvchi haqida batafsil ma'lumotni namoyish qilish. Uning sintaksisi:
Var_dump (o'zgaruvchan ro'yxat);
  1. O'zgaruvchilar ro'yxati bir yoki bir nechta o'zgaruvchan nomlarni ko'rsatadi. Ushbu xususiyat hech narsani qaytarmaydi. Misol:
$ x \u003d 12.56; Var_dump ($ x);
  1. Var_Dump () dan kam ma'lumot beruvchi, o'zgaruvchilar haqidagi ma'lumotlarni ishlab chiqarish funktsiyasi quyidagilardan iborat:
Print_r (ro'yxat_name);
  1. "Massiv" tipidagi o'zgaruvchilar uchun Ushbu funktsiya indeks \u003d\u003e element ro'yxatini ko'rsatadi.

Dummies uchun rnr o'zgaruvchilar

  1. O'zgaruvchilar - ma'lumotlar saqlash uchun idishlar. O'zgaruvchida saqlanadigan ma'lumotlar ushbu o'zgaruvchining qiymati deb ataladi.
  2. O'zgaruvchan nomga ega - sarlavhalar va tinish belgilari, bir dollar belgisi ($), undan keyin x harf yoki pastki xarakterdan boshlanadi.
  3. O'ng o'zgaruvchi nomlar: $ _tel, $ tmp, $ my_, $ manzilingiz_234_45.
  4. Noto'g'ri o'zgaruvchi nomlar: $ 234tel, manzilim, $ Tel: 234.
  5. RNR o'zgaruvchilar va konstantsiyalarning nomlari haqidagi ro'yxatga olish uchun restavoziyal tildir. Biroq, kalit so'zlar har qanday registrda ishlatilishi mumkin.

Joylar uchun pic tilidagi ma'lumotlar turlari va ma'lumotlarni qayta ishlash

Ma'lumotlar turi Misol Qiymatlarning tavsifi
Satr yoki belgi (satr) "Hammaga salom"
"123456"
"25 rubl"
Kotirovka qilingan belgilar ketma-ketligi
Interveded, raqamli (butun son) -234
25
0
Raqamni belgilash mumkin bo'lgan raqamlarning soni yoki ketma-ketligi.
Suzuvchi nuqta raqami (suzuvchi) 5.47
21.4
35E-3.
Kasr qismi bilan qism (35E2 3500)
Mantiq (Boolean) to'g'ri.
yolg'on
Ushbu tur ikki qiymatga ega: haqiqiy (haqiqat, ha), yolg'on (yolg'on, yo'q)
Nol nol Ushbu ma'lumotlar turi bitta qiymatga ega - NULL
Massiv (qator) Ushbu turdagi ma'lumotlar har xil turdagi qiymat to'plami mavjud.
Ob'ekt (ob'ekt) O'zining xususiyatlari bilan belgilangan dastur ob'ekti
  1. O'zgaruvchini aniqlash uchun siz funktsiyadan foydalanishingiz kerak:
gettype (ism);
  1. Aniq turdagi tur uchun siz ikkita usuldan birini ishlatishingiz mumkin:
Ism_Name \u003d (int) 12.45 // natijalar 12 onari (tasdiqlangan, "tur")< ?php $x="PHP"; $s=gettype($x); echo $s, " "; settype($e,"integer"); $s=gettype($e); echo $s, " "; $d=(int)24.4; $s=gettype($d); echo $s, " ", $d; ?>

Dummiyalar uchun PHP tili konstantalari

  1. Doimiy nomlangan qiymat, dastur ijrosi davomida o'zgarmaydigan qiymat (skript).
  2. O'zgaruvchilardan farqli o'laroq, siz ularni e'lon qilganda ularga tegishli bo'lgan konstantsiya qadriyatlarini o'zgartira olmaysiz. Dastur davomida o'zgartirilmasligi kerak bo'lgan qiymatlarni saqlash uchun qiymatlardan foydalanish qulay. Konstantalar faqat skalalar ma'lumotlarini (mantiqiy, butun son, suzuvchi va satr turlarini) o'z ichiga olishi mumkin.
  3. PNP konstantalari aniqlangan () funktsiyasi bilan belgilanadi. Bu erda uning sintaksisi:
Belgilang ($ ism, $ qiymat, $_sen);

$ Ism - doimiy omil.
$ Qiymati - doimiy qiymat.
$ Cative_sen - bu harflar (haqiqiy) yoki yo'qmi yoki yo'qmi yoki yo'qligini ko'rsatadigan ixtiyoriy mantiqiy parametr.

Aniqlang ("pi", 3.14, to'g'ri); Echo pi; // 3.14 displeyda.

  1. Doimiy holatning mavjudligini tekshirish uchun siz aniqlangan () funktsiyasidan foydalanishingiz mumkin. Agar doimiy bo'lsa, ushbu funktsiya haqiqatni qaytaradi. Misol:
// biz PI doimiy ravishda ("PI", 3.14, to'g'ri) deb e'lon qilamiz; Agar (aniqlangan ("pi") \u003d\u003d TREO) echo "PI doimiy deb e'lon qilindi!"; // Skriptda "PI doimiy deb e'lon qilinadi!"

PHP tilidagi konstantalar va chempionatlar uchun turli xil farqlar

  1. Doimiy ravishda dollar belgisi ($) ko'rinishida konsol yo'q.
  2. Konstantalar faqat aniqlangan () funktsiyasidan foydalanib, qiymatni tayinlamaslik uchun aniqlanishi mumkin.
  3. Konstantalarni belgilash va doirani hisobga olmasdan aniqlanishi va mavjud bo'lishi mumkin.
  4. Dastlabki reklamadan keyin konstantalarni aniqlab bo'lmaydi yoki bekor qilib bo'lmaydi.
  5. Konstantalar faqat Scalar qiymatlari bo'lishi mumkin.

Dummiyalar uchun PHP-da dasturlash. 1-qism Oxirgi o'zgartirilgan: 3 mart, 2016 yil Admin.

Boottrap ramkasi: tez moslashuvchan non

Boottarta ramkaidagi moslashuvchan tartib asoslari bo'yicha bosqichma-bosqich video kurs.

Kuchli va amaliy vositani ishlatib, oson, shunchaki va samarali o'rganing.

Buyurtma berish va pul olish.

Bepul kurs "WordPress-dagi veb-sayt"

CMS WordPress-ni o'zlashtirmoqchimisiz?

Saytning dizayni va joylashuviga WordPress-dagi tartibda oling.

Mavzular bilan ishlashni o'rganing va tartibni kesib oling.

Bepul video ekipaj rasmlar dizayni, uning tartibi va CMSCress WordPress-dagi!

* Sichqonchani to'xtatish uchun sichqonchani bosing.

Oldinga oldinga

PHP asoslari: Yangi boshlanuvchilar uchun umumiy ma'lumot

Yillar davomida PHP eng mashhur dasturlash tillari va veb-chiqishlari ro'yxati bilan bog'liq. Albatta, boshqa tillar ham bor, ammo WordPress dvigateliga asoslangan saytlarning keng tarqalishi asosan bu tilning mashhurligi yanada oshishiga yanada kuchayishiga qo'shimcha ravishda beriladi.

PHP nima?

Php shifrlash Gipertext Preprocessor. ("HTML Preprocessor" ga o'xshash narsa.

Bu nimani anglatadi? Keling, birozdan boshlaylik: ikki xil til mavjud. Bir tur deb nomlanadi "Mijoz"ikkinchisi - "Server".

Bu shuni anglatadiki mijoz tillar har bir aniq odamning brauzerida ishlaydi. Mijoz tillarining tipik vakili JavaScript.ehtimol siz eshitgan va natijada paydo bo'lgan.

Agar siz JavaScript haqida ko'proq ma'lumot olishni istasangiz, keyin materialni o'qing.

Biz taxmin qilishimiz kerak bo'lgan barcha harakatlar va buyruqlar brauzer tomonidan ko'rsatamiz, demak, biz bir xil kod, ikkinchisi - boshqasida - Firefox, uchinchi o'rinda - Opera, to'rtinchi - Google Chrome, I.E. Bizning sahifamizni ko'rish uchun har bir kishini ishlatadigan kuzatuvchi.

Brauzer, shu sababli alternativa ismga ega - mijoz.

Agar bo'lsa server tillari (Qaysi php ni anglatadi), biz boshqa rasmni ko'ramiz.

Bizning saytimiz har doim serverda joylashgan, i.e. Kuchli kompyuter, ko'p odamlarning saytlarini joylashtirish uchun maxsus ishlab chiqilgan.

PHP-da yozilgan barcha buyruqlar va skriptlar serverda amalga oshiriladi.Va boshqacha boshqacha. PHP belgisi serverda amalga oshirilgandan so'ng, server "brauzerda" ishining natijasini "beradi".

Keyingi daqiqani tushunish juda muhim: veb-sahifaning dastlabki kodida, bu har qanday brauzerda bo'lgani kabi variant orqali ko'rish mumkin "Sahifa manbai kodi" Ushbu sahifani yaratish uchun PHP tilidan foydalanilganligini aniqlay olmaysiz.

Bu shunchaki qilish mumkin emas, chunki PHP skriptlari serverda qayta ishlanganligi sababli va brauzer allaqachon tayyor, qayta ishlangan. Aslida, faqat HTML kod.

An'anaviy statik HTML sahifalariga nisbatan farq kodni qayta ishlashning qo'shimcha bosqichi hisoblanadi.

HTML sahifasida faqat bitta bosqich mavjud: Brauzer HTML kodini qayta ishlaydi, i.e. Natijada ma'lum qoidalarga muvofiq sahifaning belgisi, natijada normal shaklda veb-sahifani ko'ramiz.

PHP sahifasida ikkita bosqich mavjud: Birinchi bo'lib chaqirilgan PHP tarjimoni (Ishlov beruvchidan) php kodini ijro etadi (natijada u oddiy HTML kodini o'zgartiradi), keyin brauzer allaqachon ushbu ishlov berish natijasida qayta ishlangan, ya'ni bir xil bosqich amalga oshiriladi , HTML sahifasida yagona bo'lgan yagona narsa.

Umuman olganda, PHP HTML bilan birga mukammal ishlaydi. Bundan tashqari, HTML-kodda siz PHP kodini kiritish va PHP chiqish html belgisini ishga tushirishingiz mumkin. Keyingi oddiy lahzani eslab qolish juda muhim: sizning PHP kodingiz qanchalik qiyin emas, albatta, natijada "Chiqish paytida" natijada u odatiy HTML bo'ladi.

PHP nimadan foydalanish kerak?

HTML 100% statoring. Bizning PHP kod sahifalarida biz erisha olamiz xuddi shu sahifaning tarkibi ma'lum shartlarga qarab har xil edi. (Dinamik sahifalar). Uning mavjudligi yillari davomida PHP tili dinamik veb-saytlarni yaratish uchun ajoyib echim sifatida o'zini namoyon qildi.

Php boshqa tillarga o'xshaydimi?

Ha. PHP appar, perl, javascript, c # ga o'xshaydi. Ehtimol, endi siz ulardan hech birini bilmaysiz, lekin PHP-ni o'rganish sizga kelajakda sizga ko'proq ishonch va boshqa tillar bilan imkon beradi.

Siz nima qilishni boshlashingiz kerak?

Kompyuteringizda PHP bilan to'liq ishlash uchun sizga quyidagi narsalar kerak:

1. Apache veb-serveri (ko'p hollarda ishlatiladi);
2. Ma'lumotlar bazasini boshqarish tizimi (DBTMS) MySQL (ma'lumotlar bazasida sayt to'ldirilgan joy);
3. PHP tarjimoni o'rnatildi;
4. Siz kodni yozadigan matn muharriri;
5. Brauzer.

Endi birinchi uchta nuqta haqida biroz ko'proq.

1. Veb-server Bu sizning kompyuteringizda serverning o'zi, saytingizda Internetni xostingga joylashtirilganligi haqida taqlid qilish. Siz uchun kompyuteringizda siz har qanday PHP skriptlarini yozishingiz va ular qanday ishlashini kuzatib, ularda o'zgarish va tahrirlashingiz mumkin. Bir so'z bilan aytganda, u tuzatish deb ataladigan bo'lishi kerak.

2. DBSQL mysql Saytingizda bo'ladigan ma'lumotlarni saqlash kerak. HTML-sahifalarga tegishli bo'lsa, saytning barcha tarkiblari to'g'ridan-to'g'ri ularda. Har bir sahifada ma'lum miqdordagi ma'lumotlar (tarkib) mavjud.

PHP-dan foydalanganda foydali ma'lumotlar tarkibini saqlash uchun foydali ma'lumotlarni saqlash uchun ishlatiladi. Aksariyat hollarda MySQL.

3. PHP tarjimonasi. - Bu veb-serverda PHP kodini qayta ishlashni amalga oshiradigan dasturning bir turi. Sizsiz biz PHP skriptlarimizni bajara olmaymiz va ularning ishlarining natijasini ko'ring.

Ushbu komponentlarni kompyuterda qanday o'rnatish kerak?

Ushbu jarayonni juda yaxshi biladigan va veb-server konfiguratsiyasi sohasidagi biron bir ilmni, MySQL va PHP tarjimonida hech qanday bilimlarni talab qilmaydi.

Bu maxsus to'plam DenwerUnda uchta uchta komponentlar kiritilgan. U oddiy dastur sifatida kompyuterga o'rnatiladi va oldindan sozlashsiz ishlashga tayyor.

Denwer ko'pchilikning haddan tashqari ko'pchiligidagi ideal echim, chunki u barcha qutqaruvchi tayoqchasida bo'ladi, chunki u veb-server, mysql dbms va PHP tarjimoni.

Asos

PHP kodini qayta ishlashingiz kerak bo'lgan serverni xabardor qilish uchun siz HTML hujjatiga PHP qo'shganda quyidagi sintaksisdan foydalanishingiz kerak:

PHP kodi blokining ochilishi sifatida ko'rsatilgan "va yopilish - "?>" . Endi bizning kodini quyidagicha o'zgartiring:

Shuni esda tutingki, biz hamma narsani bitta qatorda yozgan edik. Qo'ziq bo'shliqlari va tarjimalari bu erda rol o'ynaydi va yakuniy natijaga ta'sir qilmaydi.

Masalan, biz serverni serverga beramiz aks sado. (ekranda ma'lumotlarni ko'rsatish buyrug'i) va biz iborani ko'rsatmoqchimiz Ushbu php amalda. PHP-dagi har bir buyruq bu jamoaning oxirida vergul bilan bir vaqtda ajratilgan.

PHP ni aniqlash uchun thpni aniqlang va siz hech narsa vergul, qavslar, tirnoq va hk. Ushbu holatda PHP sintaksis xatosi haqida aniqroq va bu xatoga yo'l qo'yiladigan satrni ko'rsatilishi kerak bo'lgan noto'g'ri xatti-harakatlar haqida xabar beradi.

Aytgancha, bu holda biz jamoaning oxirida vergul nuqtasidan foydalana olmaymiz, chunki bizda faqat bitta (buyruq). Biroq, kod bilan ishlashda har doim yaxshi amaliyotga rioya qilish yaxshiroqdir.

E'lon qilmoq

PHP-da o'zgaruvchan. - Bu ba'zi ma'lumotlarni o'z ichiga oladigan o'ziga xos idish. Bunday "konteyner" ni yaratish uchun biz uni chaqirishimiz va "yolg'on gapirish" kerakligini ko'rsatishimiz kerak. Bu belgi yordamida amalga oshiriladi "$" Bu biz o'zgaruvchan bilan shug'ullanayotganimizni anglatadi. O'zgaruvchan nomini olib kelaylik test ibora Ushbu php amalda.

Ushbu kodni qayta ishlash natijasi avvalgi misolda ham xuddi shunday bo'ladi. Ekran shunchaki iborani qaytarib oladi Ushbu php amalda. Biroq, bundan oldin biz bu iborani to'g'ridan-to'g'ri namoyish edik va endi ular bu iborani o'zgaruvchan joyga olib kelishdi test, shundan keyin ular o'zgaruvchining qiymatini ko'rsatish uchun buyruq berishdi test.

Qanday qilib ekranda aks ettirish uchun boshqa biron bir matn yoki boshqa ma'lumotlarni qo'shamiz?

Keling, bunga quyidagi misolda ko'rib chiqaylik:

Ko'rganingizdek, o'zgaruvchini ishlab chiqargandan keyin test Bo'shliq, keyin joy, keyin bo'shliq bor. Shundan so'ng, birinchi o'rinni oching, birinchi navbatda bitta bo'sh joy bo'ladi, so'ngra - taklif Mening ismim dmitriy Naumenko., shundan keyin tirnoq yaqinroq.

Keling, qadamlardan o'taylik va bu erda nima kerakligini ko'rib chiqaylik.

O'zgaruvchini ishlab chiqargandan keyin test Biz qo'shimcha matnning mavjud bo'lganidek, allaqachon "qo'shing" degani. Bu nuqta belgisi yordamida amalga oshiriladi. (.) .

PHP qo'shimchalarida nuqta belgisi deganiAmmo raqamlar qo'shilishi emas, balki biz ishlayotganimiz kabi, matn ma'lumotlarini qo'shish. Bog'lardan keyin biz tirnoqlarga ishora qilamiz, xulosaga nima qo'shmoqchamiz va yangi taklif yozamiz.

Shuni esda tutingki, tirnoqlarni ochgandan so'ng bo'sh joy mavjud. Ekranda namoyish etilsa, u tufayli bizning iboralar qochib ketmasligi uchun saqlanadi. Ular. Biz sizga chiqamiz:
Bu pHP amalda. Mening ismim dmitriy Naumenko.

Agar siz bu bo'shliqni olib tashlasangiz, u o'chiriladi:
Ushbu php harakatda. Ism Dmitriy Naumenko.

Shuningdek, men sizning e'tiboringizni papka ishlab chiqaradigan qo'shimcha narsadan ikkala tomonning bo'shliqlariga jalb qilmoqchiman. Ushbu bo'shliqlar hech qanday rol o'ynamaydi va faqat ko'rinishi va idrok qulayligi uchun foydalanilmaydi. Quyidagi kod bizga aynan bir xil natija beradi:

Shuning uchun, bu holatda yozing, bu qulayroq.

Kodeksda sharhlarni joylashtiring

Birinchi savol - "Nega ular umuman kerak?"

Sizga izohlar, eslatmalar, tushuntirishlar va boshqalar qilishingiz uchun sharhlar kerak. Kod bilan ishlash jarayonida. Siz hozir siz hamma narsa aniq va ravshan deb o'ylardi. Agar siz mukammal esda tutsangiz, nega bu o'zgaruvchi bu o'zgaruvchiga va funktsiya nima qilish kerakligini talab qiladi.

Bu unchalik ko'p vaqt talab qilinmaydi va sharhsiz, siz boshqa odamlarning skriptlarini eslamaslik uchun siz hatto o'z kodingiz bilan ham tushunishingiz mumkin emas. Shuning uchun sharhlar izohlanadi - shoshilinch ehtiyoj.

PHPda, qoida tariqasida, ikki xil sharhlar:

Albatta, sharhlar faqat PHP kodi bloklarida amal qiladi va ?> .

PHP yordamida HTML-ni ko'rsatish

Yuqorida aytib o'tganimdek, PHP va HTML ishlaydilar. PHP kod blokida nima degani biz hali matnni paragrafda yoki qalin dizaynda ekranga olib bora olmasligimizni anglatmaydi.

Bu yog 'ajratilgan matn."; ?>

Siz allaqachon taxmin qilganingizdek, ushbu Kodeksning natijasi yog 'dizayni bo'yicha ushbu liniyaning brauzeriga olib chiqiladi.

Birinchi funktsiyani yarating

Avvalo, qanday funktsiya nima bo'lganligi haqida bir necha so'z.

Funktsiya - Bu foydali ishlarni amalga oshiradigan va bizga natijani beradigan mini-dastur.

Funktsiyalar bir xil turdagi, shablon harakatlarini ishlab chiqarish kerak bo'lgan joyda foydalanish uchun foydali bo'ladi. Bunday holda biz bunday mini-dasturni yozamiz, bu kod miqdorini sezilarli darajada kamaytiradi va shunga mos ravishda bizning harakatlarimiz.

Funktsiya yaratishda sintaksis quyidagicha:

Aytaylik, agar biz funktsiya yozmoqchi bo'lsak, 10 va 5 raqamlarning yig'indisini hisobga olib, biz buni qila olamiz:

Biz nomlangan xususiyatni yaratamiz sum. Va uning tanasida biz 10 va 5 raqamlarning miqdorini ko'rsatishi kerakligini ko'rsatamiz, shundan keyin biz funktsiyani chaqiramiz sum.. O'zining mohiyatidagi qo'ng'iroq vazifasi uning bajarilishini anglatadi.

Ushbu misolda biz hech qanday dalillardan foydalanmaymiz (yuqoridagi sintaksis funktsiyasini ko'ring). Argumentlar va ularga nima kerakligi, biz misolni ko'rib chiqamiz. Biz bor kodni o'zgartiramiz, uni yanada moslashuvchan va funktsionallashtiramiz:

Endi funktsiyani yaratishda sum. Biz qavs ichida vergul orqali, ikkita dalilni ko'rib chiqamiz - $ Slammaeeme1 va $ Slammaeeme2.. Funktsiya organida biz ekrandagi aniq raqamlarni emas, balki parametrlardagi aniq raqamlarni emas, balki o'zgaruvchilar qiymatlari $ Slammaeeme1 va $ Slammaeeme2. (i.e. bu eng ko'p dalillar).

Endi biz shunchaki funktsiyani chaqirib, uni qavs ichiga o'tkazib, uni "kutayotgan" deb atashimiz kerak. Biz 15 va 5 raqamlarini spetsifikatsiya qilamiz, natijada 15. funktsiyani o'tkazib yuboramiz sum. Biz, albatta, boshqa javobni oling.

Umid qilamanki, ushbu sharh sizga PHP nima ekanligini tushunishga yordam berdi va u qanday afzalliklarga ega, statik HTMLdan oldin qanday afzalliklarga ega va qanday qilib ba'zi oddiy imkoniyatlaridan foydalanishingiz mumkin.

Dmitriy Naumenko.

P.S. PHP ustada harakat qilishni xohlaysizmi? Sayt binolari, shu jumladan PHP dasturlashining turli jihatlari, shuningdek PHP-da CMS tizimini noldan yaratish bo'yicha bepul darslarga e'tibor bering. Bularning barchasi sizga ushbu kuchli veb-rivojlanish tilini rivojlantirish uchun tezroq va osonroq yordam beradi:

Sizga material yoqdimi va minnatdorchilikni xohlaysizmi?
Do'stlar va hamkasblaringiz bilan bo'lishing!


Salom Bugun men Mavramning dasturlash tili haqida mavzuni ko'rib chiqishni davom ettiraman. Blogdagi ushbu nashrda allaqachon mos keladigan materiallar mavjud.

Shuning uchun ushbu nashrda veb-dizaynda har bir yangi kelganlarni bilishlari kerak bo'lgan materiallar mavjud. Maqola o'nta kichik bandlarga bo'linadi, bu erda har bir mahsulotda qisqacha yozuvlar qisqacha tavsiflanadi.

Keling, eng muhim rnr nutqidan boshlaylik. PNP HTML-ga o'rnatilgan server skriptlarining tili.

RNR - bu HTML protsessoridir.

Bu nimani anglatadi. Uning ishi server brauzer faylini berishdan oldin qurilgan, uning qayta ko'rib chiqilayotgan protsessor tarjimon. Va ushbu harakat bajarilishi uchun fayllar ma'lum bir kengaytmaga ega bo'lishi kerak. Faqatgina ular protsessor tomonidan qayta ishlanadi.

Sahifani yuborishdan oldin RNR kod serverda ko'rilgan va brauzer berilgan HTML sahifasining shaklida keltirilgan, bu esa serverda bo'lganidan juda farq qilishi mumkin.

Oddiy sahifalar Openmen.html veb-serveri hech qanday ishlov bermasdan brauzer yuboradi. RNR skriptlari aniqroq yozilgan, siz ochish va yopilish yorlig'idan foydalanib, tugatilgan HTML sahifasiga joylashtirdingiz. Perl I.T.D kabi boshqa tillarda yozilgan boshqa dasturlardan farqli o'laroq

JavaScript-ning vbscript-dan farqli o'laroq skriptlar tili deb nomlanadi. Mijoz skriptlarining tili. Bu shuni anglatadiki, PNP skript serverda ishlaydi va mijoz o'z faoliyatining natijasi bilan amalga oshiriladi, JavaScript Mijozlar mashinasiga to'liq uzatiladi va u erda brauzer bilan bajariladi.

1-RNR Bu skript tilida, asosan, veb-dasturchilar uchun ishlab chiqilgan va dinamik sahifalarni yaratishga mo'ljallangan.

2 - RNR faylni tahlil qilganda, unda maxsus operatorlar yig'ilguncha tarkibni o'qish (kashfiyot yorlig'i)) Kodni o'qish davom etmoqda. Shunday qilib, PNP istalgan vaqtda har qanday HTML kodida kiritilishi mumkin.

3 - Majburiy RNP kodni yaratish qoidasi,

satr "", "

funktsiya nomi reestrga sezgir emas (katta yoki kichik harflardan foydalanishiga qaramay)

o'zgaruvchilarning ismlari registrga sezgir (katta va kichik harflardan foydalanish o'rtasidagi farq)

qavslar ikki tomonlama "" yoki bitta "(bunday parametrlardan foydalanish» yoki "" "xato bo'ladi"

rNR kodi ochilish va yopish yorlig'ining quyidagi sinovlaridan biri bilan cheklangan

4 - RNRda, siz brauzerda ko'rsatilmagan, kerakli ma'lumotlarni taqdim etish uchun sharhlarni kiritishingiz mumkin bo'lgan uchta usul mavjud. Belgilar # yoki // sharh deb hisoblanadi.

5 - PNP-dagi o'zgaruvchilar - bu ismga ega bo'lgan va bir necha marta o'zgarishi mumkin bo'lgan qiymatga ega bo'lgan va ma'lumotlar bazasida saqlanishi mumkin bo'lgan qiymatga ega bo'lgan ma'lumotlar konteyneri.

O'zgaruvchining ma'lumot nomi $ va keyin kichik (A - Z) yoki katta (a - z) yoki "_" belgisidan boshlanadi. O'zgaruvchan ismi raqamlardan boshlanmaydi va o'zgaruvchining nomi bo'shliqlarning vazifasi emas.

6 - Har bir qismning soni ko'payishi va pasayish birligi pasayishi deb ataladi.

7 - Har bir RNR skripti - bu dizaynlar to'plami. Dizayni tayinlash, funktsiyaga qo'ng'iroq qilish, taqqoslash, taqqoslash, shuningdek hech narsa (bo'sh operator). Dizayn vergul bilan yakunlanadi.

Bundan tashqari, dizaynlar to'siqlarni jingalak qavslarda tuzish orqali birlashtiradi. Qurilish bloki ham dizayn.

RNR-Dizayn dasturlarini dasturlashda bu sizga shartni aniqlash imkonini beradi va so'rovga qarab ba'zi operatsiyalarni boshlashga imkon beradi. Agar bo'lsa. Boshqa. Elif. Tugmasini bosing.

8 - Jadvalning muhim funktsiyalaridan biri HTML shakllar va ularni qayta ishlash ma'lumotlarini ishlab chiqarishdir. Bunday harakat atributlari va postini ishlab chiqarishda siz bilan shug'ullanadigan elementlar bilan shug'ullanasiz va Meod

9 - Dastur kodeksining ushbu qismi noyob nomi (harf registrining aniqligi bilan) funktsiyaning asosiy maqsadi ma'lum bir vazifani hal qilishdir.

Funktsiya dasturning turli joylarida ko'rsatilganidek, belgilangan nom bilan bir necha marta bo'lakni bir necha bor bajarishga imkon beradi. Albatta, bunday yechimning ijobiy ta'siri shundaki, kod blokirovkasi faqat bir marta yoziladi va kerak bo'lganda o'zgartiriladi.

10 - Sinf - bu ob'ektga yo'naltirilgan dasturlashning asosiy tushunchasi. Sinf - bu usul va xususiyatlarning tavsifi. Sinf yaratilgan va dasturda ishlatilmagan.

Oxirida "Yangilanishlar" ga qarang:

Joriy kod bazalari SMS-xabarlarni yuboradigan sof protsessual kodga ega (biznes mantiqiy aloqalari, agar shartli ravishda hisob-kitoblar bo'lsa, agar shartlar son-sanoqsiz bo'lsa, ishlamasa, funktsiyalar, to'liq litriy, haqiqiy nomzod Dilerwth?). Va men o'qni tishlashga qaror qildim va skrindan butun la'natni qayta yozdim.
Gap shundaki, bu mening birinchi OOP tajribam bo'ladi. Men etakchi va yaxshi amaliyot haqida iloji boricha o'qiyman va oddiy narsadan boshlashga qaror qildim. Men yuborishni / qabul qilishni amalga oshirishni xohlayman (asosan matn / SMS, lekin MMS, elektron pochta xabarlari kiritilishi kerak). Shunday qilib, men birinchi xabarim sifatida quyidagilarni yozdim

Moskorincapececapeccace; Jamoat funktsiyasi () Stancondent (). Jamoat funktsiyasi (). Jamoat funktsiyasi (). Jamoat funktsiyasi (SHOVE $ _TONTHE; XUSUSIY $ _ontent; jamoat Funktsiya Jang ($ toifa) ($ bu - / _ tipingiz;) Standartent ($ bu -\u003e _ tipingiz) "Matn") ($ bu -\u003e _ cont \u003d centce \u003d/alge) // reaktsiyaning muvaffaqiyatsizligi) // $ bu -\u003e conth; SendMessage () (agar (BIRINChI BERISh) ("yuborish" ("yuborish" (Yuborish). "SHICONTENT" (). Bu-\u003e gettype (). "Xabar \\ n"; // Keyinchalik amalga oshirish haqiqiy amalga oshiring; // muvaffaqiyat haqida xabar bering) // reword noto'g'ri) // reportaj Necouse). $ Msg \u003d yangi xabar (); $ Msg-\u003e Uyalipiya ("matn"); $ $ Msg-\u003e gettype (). "\\ n"; // $ SMS $ \u003d $ MSG-\u003e Setkontent ("Salom Dunyo!"); Agar ($ Natija) $ \u003d $ MSG-\u003e SendMessage (); // salom dunyoni yuborish! Agar ($ 1) "Hurray! Missiya bajarilgan missiyasini amalga oshirdi!

Men polimorfizm tushunchasini to'g'ri qo'llayman deb o'ylamayman. Agar yo'q bo'lsa, men o'zimni yaxshi his qilyapmanmi? Ehtimol, ular sentonent () uchun zarurdir, ammo SendMessage () nima deyish mumkin? Shuning uchun, men Sendmessage-ga yuborilgan qismini ajratish orqali SendmessageFincace-ni amalga oshiradi, deb o'yladim. $ server, elektron pochta va matnni yuborish usullari va boshqalar uchun o'z o'zgaruvchilariga ega bo'ladi, ammo agar s ($ msg-\u003e gettype () \u003d \u003d " "Shartli nota. Bunga qo'shish uchun men harakatimning bir qismini ajratib turadigan yangi sinf yarataman ob'ekt Meni chalkashtirib yuborgan (masalan, sinf eshiklari yaqin () va ochiq () usullarini amalga oshirish uchun javobgar bo'lishi kerak.

Endi men buni qabul qilaman, agar u erda har doim bo'lsa (polimorfizmning butun maqsadi) yoki men noto'g'ri narsa qilish kerak .
Foydalanuvchi nuqtai nazaridan men quyidagi narsani tasavvur qilaman:

$ Msg \u003d yangi xabar (); $ Msg-\u003e Uyalipiya ("elektron pochta"); // yoki "matn" yoki "MMS" va boshqalar. $ Msg-\u003e sentrontent ($ tarkib); // masalan, $ corta \u003d qator \u003d\u003e "foo", "BUGUN" \u003d\u003e "Bar") $ MSG-\u003e Sendmessage (); // Agar oxirgi qator mumkin bo'lmasa, ehtimol // $ jo'natuvchi \u003d yangi Sendmessage ($ mSG); // $ jo'natuvchi -\u003e sen ();

bu erda nima yo'q? MSG-\u003e SendMessage () $ ga erishish mumkin emas; ? Agar menga turli xil sinflar kerak bo'lsa xabarlar (Miseremamemail, misrangext va boshqalar)? Men Sendmessage (va ehtimol $ MSG-\u003e Sendmessage (); uni chaqiringmi?)

// va bu men haqimda ham o'ylamaganimda xabar olish ! Xudo menga yordam beradi !! Shum

Update Avgust 15, 2011. joriy bazasi kodi barcha jihatlari haqida o'ylab, Men amalga oshirish kerak, deb quyidagi qismlar belgilangan. a. Xabar Class (ES) (turi, Tarkib Yuboruvchi, Qabul, Send DATETIME / hokazo olish) vazifalarimiz: yaratish va o'zgartirish yozish e'lonlar B. izchil va Appriate xususiyatlari shirk keltirguvchi Majburiyatlari (foydalanish uchun protokoli, Header bilim, Server / Operator) Class (ES) yuborish: Xabar E. yuboring DATETIME o'zgartirish yuborish Ma'lumotlar bazasi Class (ES) (ID, mazmun,, TIME hokazo) dan vazifalarimiz: saqlash uchun Xabarni vakili. SPE uchun vakillik DBMS ON CRUD (CREATE, Mutolaa, UPDATE, DELETE) TADBIRLAR. e. Interfeyslarni (Max_Message_Length, takrorlash va hokazo) vazifalarimiz: Har xil modul orasida aloqa interfeysi.

Men chalkashlikning asosiy sababi aralashmalarimni polimorfizm bilan aralashtirish edi (sharhni ko'ring). Buni qanday baholaysiz?

Yangilanish 2011 yil 16-avgust
Asosan men funktsional imkoniyatlarni joylashtirish uchun interfeyslardan foydalandim. Bu erda interfeys faylining qisqacha versiyasi. ManzilcyFacecipcecace (// Clearchilik) ning aniqliklari ($ turi) uchun getterlarni o'chirish (Shaxsiy ma'lumotlar $ to'lovchi); YANGIQIYATSIYA BERADI (Conewaywcecace); SetName ($ nomi); Public Function SetAddress ($ manzili);) Interface GatewayInterface ($ bayonnomasi); Public Function yuborish (IdentityInterface $ jo, IdentityInterface $ Qabul, ContentInterface $ Content);)

(Noizre yo'q, chunki men hali klassli darveympp-ni birlashtirmaganim sababli, mening boshlang'ich sinfdagi xabarimda quyidagicha ko'rinadi:

Class xabari Messivincace (Xususiy $ _type; Xususiy $ _constemage; Xususiy $ _Sendgegeway; Xususiy $ _Sendgageway; Xususiy $ _Sendgageage; Xususiy $ _Sendgageace ($ \u003d , $ \u003d , taniqli, taniqli ma'lumotlar $ To'lovchi \u003d NULL, Idditfercace $ $ \u003d NULL, GONWEWEWEWCACASI $ YANGI -\u003e STRONTONTENT ($ condontent ($ conttontent)? \u003e Set Scerender (yangi identifikatsiya ()): $ bu- \u003e\u003d\u003d Naun) ($ bir martali (yangi identifikator) (Yangi identifikator): $ bu-\u003e perreksiver ($ bir petriver); // Xuddi $ setsendgateway boshqalar) // asoschilari va getters uchun, tark chizgan rasmlari aniq jamoat vazifasi yuborish (... test kutishga ushbu $ // -\u003e _ SendGateway-\u003e yuborish ($ this-\u003e getserter (), $, bu - \u003e getReceiver (), $ this-\u003e getcontent ...))

An qiziqarli qismi uy operatsiyalar turli va javoblar tekshirish kiritilgan GatewaySMPP joriy etish, edi. Men shunchaki jamoat funktsiyasini yozishim kerak () Jami funktsiyasi Jami funktsiyasi () Shaxsiy funktsiyada _Send (PDU, SM).

Garchi men shlyuzlarMPP-ni integratsiyalash haqida o'ylardim, men xabarlarni yuborish uchun har bir xabar uchun SMPP-ni ulash uchun men SMPP-ni ulash uchun eshakni ochish / yopishimni anglab etdim. Mashq qilish / sinov uchun normal holat, ammo amalda men foydalanish uchun mantiqimni o'zgartirishim kerak bo'lgan ko'rinadi mavjud aloqa. Qanday savol shunday? Mana bu mantiq:

Class DiwaywMPP (XUSUSIY $ _ SALL PUL, $ _ x va hbo'ych) ($ bu -\u003e Sock; \u003d $ HOST; // Initialize Boshqa maxsus o'zgaruvchilar) davlat funktsiyasi init () (($, bu bo'lsa -\u003e _ socket \u003d\u003d yolg'on!) qaytish fALSE; Foydalanilayotgan Socket ushbu $ // -\u003e _ soket \u003d FSOCKOPEN ($, bu -\u003e _ Xost, $, bu -\u003e _ port ...) // Socket $ bu Başlatıyorlar SMPP aloqa va Fwrite uchun mingdan bayonot tayyorlash -\u003e _ SendPdu (mingdan, $ Data)) Public Function Send ($ Qabul, $ SENDER , $ Xabar, ...) (dolzarb soket Operations ushbu $ qil // foydalanish Xususiy vazifalari -\u003e _ Sendsm ($ qabul qilish, $ jo'natuvchi, $ xabar, ...)) Public Function End () (if ($, bu -\u003e _ Socket \u003d\u003d\u003d Soxta) qaytish; // Socket allaqachon yopiq, bu -\u003e _ SendPdu (yoymoq, "); // tark Response $ result \u003d Fclose ($, bu betob -\u003e _ socket); javobni tekshirib tark // )

Men duch bilan Q. The muammo, men Singleton qilish haqida o'yladim, shuning uchun har bir GatewaySMPP ob'ekt (o'z $ _socket bo'ladi, deb titrash) Darvozali yoki qayta ishlatish uchun retetlarni kuzatish uchun har qanday global / shtat o'zgaruvchidan foydalaning. Mening xayolimga keladigan eng yaxshi g'oya shundaki, ushbu sinflarning iste'molchisi quyidagi mantiqiy qo'llaniladi. 1. Barcha $ ObanguceMSASAGE uchun bitta $ ObjGatewMPP-ni yarating va foydalaning 2. ObJatewaympp-\u003e Dastlabki (); 3. Formadan ($ Objmessage $ msg) $ msg-\u003e yuborish (); 4. ObjgeweMPP-\u003e End (); Bu hali ham bir vaqtning o'zida turli xil sinf foydalanuvchilarining qo'ng'iroqlari bilan bog'liqmi? Iltimos, takliflar / sharhlar iltimos.

Ehtimol shunga o'xshash narsani sinab ko'ring. Bu tez urinish, lekin har doim kodlarni takrorlashni minimallashtirishga harakat qilishingiz kerak.

sendserVece \u003d $ likerserv; ) Jamoat funktsiyasi ($ qabul qiluvchi) ($ bu-\u003e Sendserther-\u003e Sendercrice-\u003e Yuborish) ($.) Sahro yozuvi xabar (xususiy mulk). SMSMSESSAGE xabarni kengaytiradi (// Xususiy $ //) // Sounders /, ehtimol, konstruktsiyalar, $ counceService (Vazifani yuborish ($ qabul qiluvchi, Emailmon, Emailmoscead. Xabar) (// Siz faqat oluvchidan faqat sizga kerakli xususiyatlardan foydalanishingiz mumkin (elektron pochta manzili) // Siz tasdiqlovchi hujjat va mavzuga ega ekanligiga ishonchingiz komil Funktsiya // elektron pochta xabarlarini yuborish) SMSSSERSEVSERVESSERVESSESSESSESSASSALARI SMSSSERSERS (Funktsiya ($ qabul qiluvchi, SMS) sizga kerak bo'lgan xususiyatlardan foydalanishingiz mumkin (// raqam) // SMS-xabarlarni yuborishingiz mumkin. ) // foydalanilishi mumkin bo'lgan "foydalanuvchi" ni belgilaydi Ikkala mesge ikkalasi ham sinf egasi (xususiy $ elektron pochta; Xususiy $ tel; Xususiy $ ismlar; // engil va getters) // Yuqoridagi // 1-dan qanday foydalanishingiz kerakligi, siz ushbu NewBeent \u003d Yangi qabul qiluvchiga o'xshab, siz uchun bu // sizga taqdim etishingiz kerak. $ beruvchidan -\u003e Setemail (" [Elektron pochta bilan himoyalangan]"); $ Qabul qilingan -\u003e SetName (" Herp Derp "); Sizning xabaringizni yuborish uchun $ 1.// Yangi SMS yuborish uchun xizmat ko'rsatish (); // 3 - yaratish O'zingizning xabaringiz uni o'z ichiga olgan xizmatdan foydalanib, uni yuborish uchun xizmatdan foydalanishingiz mumkin \u003d Yangi SMSMSASASASIYA ($ SAYSSERVESSE) ($ 4) - xabaringizni yuborish uchun $\u003e "Lorem Ipsum Herp Derp"); $ xabaringiz -\u003e yuborish ($ qabul qiluvchilar);

Boshqa sinfni kengaytirmasdan, siz buni interfeyslar bilan amalga oshirishingiz mumkin. Va bu juda yaxshi.

Kodda aytishga harakat qilaman (chunki mening inglizcham php dan ham yomonroq)

to \u003d $ uchun; $ bu-\u003e mavzusi \u003d $ mavzu; $ bu-\u003e Tarkib \u003d $ tarkib; ) Jamoat funktsiyasi Yuborish () ($ bu-\u003e uchun, $ bu- $ (SMS -\u003e SMS, $ (SMS-son; maxfiy $); maxfiy $ xabarnomalar __creatrecren ($ raqam, $ xabari, $ torm \u003d "») ($ bu-4 num \u003d $ ($ ($), 0, 140); bo'sh ($ torm)? $ Num : $ dan;) Yuborish () (// ...)

Sentkontent usulidan faqat matn turlari uchun foydalanilishini hisobga olsak, ehtimol siz biron bir tarzda, ehtimol, SMSMSESEGE va MMMSMSAJAGE asosiy so'z va SMSMessage-ni qandaydir tarzda ajratish mantiqiy ko'rinadi. . SMSMSESSED-da, siz Secontonent () va keyin, masalan, MMSMessage uchun (), masalan, moslashtirish () ni aniqlashingiz mumkin. Yana bir yondashuv - bu setkonentni () bazaviy klass xabaridagi mavhum deb ta'riflash va keyin ushbu usulni aniqlash uchun meros xisitorlarni majburlash.

Eslatma tomonida protsessual kod etarli emas, lekin sizning holatingizda jiddiy tuyuladi. Agar bu reaktiv sifatida bo'lsa, bularning barchasi boshqa voqea.

Boshqa tilga boring. (bexazil). PHP-da oop qo'llab-quvvatlash butunlay yo'q va men boshqa narsa uchun dasturni dasturlashga harakat qilishni istamayman, tarmoqqa yaqin bo'lgan vazifalardan tashqari.