PHP
| PHP | |
|---|---|
| Paradigmaları | Kóp paradigmalı: imperativ, funkcional, obyektke baǵdarlanǵan, proceduralıq, reflektiv |
| Dóretiwshi | Rasmus Lerdorf |
| Baǵdarlamashılar | The PHP Development Team, Zend Technologies, PHP Foundation |
| Birinshi shıǵarılıwı | 8-iyun, 1995-jıl |
| Turaqlı versiyası | 8.4.12 / 28-avgust, 2025-jıl |
| Tiplestiriw tártibi | Dinamikalıq, hálsiz, dárejeli |
| Ámelge asırıw tili | C (tiykarınan; ayırım komponentleri C++ tilinde) |
| Operaciyalıq sistema | Unix-like, Windows, macOS, IBM i, OpenVMS, IBM Z |
| Licenziya | PHP License |
| Fayl keńeytpeleri | .php, .phar, .phtml, .pht, .phps |
| Veb-saytı | php.net |
PHP — bul tiykarınan veb-baǵdarlamalastırıwǵa arnalǵan ulıwma maqsetli skriptlew tili. Ol dáslep 1993-jılı Daniya-Kanadalı baǵdarlamashı Rasmus Lerdorf tárepinen jaratılǵan hám 1995-jılı shıǵarılǵan[1]. PHP anıqlama implementaciyası házirgi waqıtta PHP Toparı tárepinen islep shıǵarıladı[2][3]. PHP dáslep Personal Home Page diń qısqartpası edi,[4][5][6] biraq házir ol rekursiv bekronim PHP: Gipertekst Preprocessorı degen mánisti bildiredi[7].
PHP kodı ádette veb-serverde modul, demon yamasa Common Gateway Interface (CGI) orınlanatuǵın faylı retinde ámelge asırılǵan PHP interpretatorı tárepinen qayta islenedi. Veb-serverde interpretaciyalanǵan hám orınlanǵan PHP kodınıń nátiyjesi — ol generaciyalanǵan HTML yamasa ekilik súwret maǵlıwmatları sıyaqlı hár qanday túrdegi maǵlıwmat bolıwı múmkin — HTTP juwabınıń pútkil yamasa bir bólimin quraydı. Sol juwaptıń payda bolıwın basqarıw yamasa jeńillestiriw ushın qollanılıwı múmkin bolǵan hár túrli veb-shablon sistemaları, veb-kontentti basqarıw sistemaları hám veb-freymvorklar bar. Bunnan tısqarı, PHP veb kontekstinen tıs kóplegen programmalastırıw wazıypaları ushın, mısalı, jeke isleytuǵın grafikalıq qosımshalar[8] hám dronlardı basqarıw[9] ushın qollanılıwı múmkin. PHP kodı sonday-aq komanda qatarınan tikkeley orınlanıwı múmkin.
Zend Engine tárepinen iske túsiriletuǵın standart PHP interpretatorı PHP Licenziyası boyınsha shıǵarılǵan biypul programmalıq támiynat bolıp tabıladı. PHP keń kólemde portlanǵan hám hár túrli operaciyalıq sistemalar hám platformalardaǵı kópshilik veb-serverlerde ornalastırılıwı múmkin.
PHP tili jazba rásmiy specifikaciya yamasa standartsız rawajlandı, bunda dáslepki implementaciya basqa implementaciyalar úlgi alıwǵa umtılǵan de-fakto standart retinde xızmet etti.
W3Techs esabatına sáykes, 2024-jıldıń 27-oktyabr sánesine (PHP 7 toqtatılǵanına shama menen eki jıl hám PHP 8.3 relizinen 11 ay ótkennen keyin), PHP 7 ele de PHP veb-saytlarınıń 50.0%-inde qollanılmaqta, bul eskirgen hám qáwipsiz emes ekenligi belgili[10]. Sonıń menen bir qatarda, PHP veb-saytlarınıń 13.2%-i bunnan da eskirgen (5+ jıldan berli toqtatılǵan) hám qáwipsiz emes PHP 5-ti paydalanadı, hám endi qollap-quwatlanbaytuǵın PHP 8.0 de júdá keń tarqalǵan, solay etip PHP veb-saytlarınıń kópshiligi qollap-quwatlanatuǵın versiyalardı paydalanbaydı.
Tariyxı
Early history (1993 to 1997)
PHP-di islep shıǵıw 1993-jılı Rasmus Lerdorf C tilinde bir neshe Ulıwma Shlyuz Interfeysi (CGI) programmasın jazǵanda baslandı,[11][12] olardı óziniń jeke úy betin qollap-quwatlaw ushın paydalandı. Ol olardı veb-formalar menen islesiw hám maǵlıwmatlar bazaları menen baylanısıw ushın keńeytti hám bul implementaciyanı «Personal Home Page/Forms Interpreter» yamasa PHP/FI dep atadı.
Dáslepki PHP sintaksisiniń mısalı:[13]
<!--include /text/header.html-->
<!--getenv HTTP_USER_AGENT-->
<!--if substr $exec_result Mozilla-->
Háy, siz Netscape qollanıp atırsız!<p>
<!--endif-->
<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
Keshiresiz, bul jazba joq<p>
<!--endif exit-->
Xosh keldińiz <!--$user-->!<p>
Siziń shıjlanıńızda <!--$index:0--> kredit qaldı.<p>
<!--include /text/footer.html-->
PHP/FI ápiwayı, dinamikalıq veb-qosımshalardı qurıw ushın qollanılıwı múmkin edi. Qátelerdi xabarlawdı tezletiw hám kodtı jaqsılaw ushın, Lerdorf dáslep PHP/FI-diń shıǵarılıwın 1995-jıl 8-iyunda Usenet talqılaw toparı comp.infosystems.www.authoring.cgi-de «Personal Home Page Tools (PHP Quralları) 1.0 versiyası» retinde járiyaladı[14]. Bul reliz Perl-ge uqsas ózgeriwshiler, formalardı qayta islew hám HTML jaylastırıw imkaniyatı sıyaqlı tiykarǵı funkcional imkaniyatlardı óz ishine aldı. Usı waqıtqa kelip, sintaksis Perl-ge uqsaytuǵın bolıp ózgerdi, biraq ápiwayıraq, sheklengenirek hám izbe-iz emes edi.
Dáslepki PHP hesh qashan jańa programmalastırıw tili bolıwǵa arnalmaǵan edi; kerisinshe, ol organikalıq túrde ósti, Lerdorf keyinirek eslep: «Men onı qalay toqtatıwdı bilmeymen [...] hesh qashan programmalastırıw tili jazıw niyeti bolmaǵan [...] Men programmalastırıw tilin qalay jazıwdı ulıwma bilmeymen [...] Men tek kelesi logikalıq qádemdi qosıp bardım»[15]. Islep shıǵıw komandası qáliplese basladı hám bir neshe aylıq jumıs hám beta-testlewden keyin, 1997-jıl noyabr ayında PHP/FI 2 rásmiy túrde shıǵarıldı[16].
PHP-diń dáslep proektlestirilmegenligi, kerisinshe organikalıq túrde rawajlanǵanı funkciya atlarınıń izbe-iz emes atalıwına hám olardıń parametrleriniń izbe-iz emes tártibine alıp keldi[17]. Ayırım jaǵdaylarda, funkciya atları PHP «oralǵan» tómengi dárejeli kitapxanalarǵa sáykes keliwi ushın tańlandı,[18] al PHP-diń júdá dáslepki versiyalarında funkciya atlarınıń uzınlıǵı ishki xesh funkciyası retinde paydalanıldı, solay etip atlar xesh mánisleriniń tarqalıwın jaqsılaw ushın tańlandı.
PHP 3 hám 4 (1998-jıldan 2004-jılǵa shekem)
Zeev Suraski hám Andi Gutmans 1997-jılı parserdi qayta jazdı hám PHP 3-tiń tiykarın quradı, tildiń atın rekursiv abbreviatura PHP: Gipertekst Preprocessorı dep ózgertti[19]. Sonnan keyin, PHP 3-tiń jámiyetshilik testlewi baslandı hám rásmiy iske túsiriw 1998-jıl iyun ayında boldı. Suraski hám Gutmans keyin PHP yadrosın jańadan qayta jazıwdı basladı hám 1999-jılı Zend Engine-di payda etti. Olar sonday-aq Izraildiń Ramat Gan qalasında Zend Technologies kompaniyasına tiykar saldı[20].
2000-jıl 22-mayda Zend Engine 1.0 tárepinen iske túsiriletuǵın PHP 4.0 shıǵarıldı. 2008-jıl avgust ayına kelip, bul tarmaq 4.4.9 versiyasına jetti. PHP 4 házirgi waqıtta endi islep shıǵarılmaydı hám hesh qanday qáwipsizlik jańalanıwları shıǵarılıwı jobalastırılmaǵan[21][22].
Dáslepki PHP 5 (2004-jıldan 2006-jılǵa shekem)
2004-jıl 1-iyulda jańa Zend Engine 2.0 tárepinen iske túsiriletuǵın PHP 5.0 shıǵarıldı. PHP 5.0 tilge áhmiyetli ózgerisler kirgizdi, eń áhmiyetlisi obyektke baǵdarlanǵan programmalastırıwǵa tolıq qayta qaralǵan usıl, sonday-aq iteratorlar hám ayrıqsha jaǵdaylar[23].
PHP 5.1 hám PHP 5.2 kelesi jılları shıǵarıldı hám kishirek jaqsılanıwlar menen jańa ózgesheliklerdi, mısalı, PHP Maǵlıwmat Obyektleri (PDO) keńeytpesin (ol maǵlıwmatlar bazalarına kiriw ushın jeńil hám izbe-iz interfeysti anıqlaydı) qostı. 2008-jılı PHP 5.x islep shıǵılıp atırǵan jalǵız turaqlı versiyaǵa aylandı.
Kóplegen joqarı dárejeli ashıq kodlı proektler 2008-jıl 5-fevraldan baslap jańa kodta PHP 4-ti qollap-quwatlawdı toqtattı, bul PHP 4-ten PHP 5-ke ótiwdi xoshametleytuǵın PHP baǵdarlamashıları konsorciumı tárepinen usınılǵan GoPHP5 baslaması sebepli boldı[24][25].
PHP 6 hám Unicode
PHPdiń jergilikli qatar funkciyaları tek shiyki baytlar menen isleytuǵın edi, bul kóp baytlı belgiler kodlawları menen paydalanıwdı qıyınlastırdı[26][27]. 2005-jılı Andrey Zmievskiy basshılıǵındaǵı proekt Xalıqaralıq Unicode Komponentleri (ICU) kitapxanasın jaylastırıw hám tekst qatarların ishki túrde UTF-16 retinde kórsetiw arqalı pútkil PHP boyınsha jergilikli Unicode qollap-quwatlawın kirgiziw ushın baslandı. Bul tildiń ishki dúzilisine de, paydalanıwshı kodına da úlken ózgerisler kirgizetuǵınlıqtan, bunı tildiń 6.0 versiyası retinde, sol waqıtta islep shıǵılıp atırǵan basqa da iri ózgeshelikler menen birge shıǵarıw jobalastırılǵan edi[28].
Biraq, kerekli ózgerislerdi túsinetuǵın baǵdarlamashılardıń jetispewshiligi hám veb kontekstinde siyrek qollanılatuǵın UTF-16-ǵa hám onnan túrlendiriwden kelip shıǵatuǵın ónimdarlıq máseleleri proekttiń keshigiwine alıp keldi[29]. Nátiyjede, 2009-jılı PHP 5.3 relizi jaratıldı hám 2010-jıl mart ayında házirgi formasındaǵı proekt rásmiy túrde toqtatıldı hám PHP 6-dan qalǵan kópshilik Unicode emes ózgesheliklerdi óz ishine alatuǵın PHP 5.4 relizi tayarlandı. Dáslepki úmitler Unicode integraciyası ushın jańa joba dúziletuǵını haqqında edi, biraq 2014-jılǵa kelip hesh qanday joba qabıl etilmedi.
Keyingi PHP 5 (2009-jıldan 2014-jılǵa shekem)
PHP 5.3 dáslep 6.0 diń bir bólimi bolıwǵa arnalǵan ózgesheliklerdi óz ishine alǵanlıqtan, bul áhmiyetli reliz boldı. Ol atlar keńislikleri, jabıwlar, kesh statikalıq baylanıstırıw[30][31] ushın qollap-quwatlawdı hám standart funkciyalarǵa kóplegen dúzetiwler menen jaqsılanıwlardı qostı.
Unicode shaqası rásmiy túrde biykar etilgennen keyin, 2011-jılı jańa shıǵarıw procesi qabıl etildi, jıllıq shıǵarıw ciklin jobalastırıp, «ózgeshelikler shıǵarılıwı» (x.y.z den x.y+1.z ge) menen «iri shıǵarılıwlar» (x.y.z den x+1.0.0 ge) arasında anıq ayırmashılıq qoyıldı. 6.0 shıǵarılıwı ushın jobalastırılǵan qalǵan ózgeshelikler 2012-jıl mart ayında shıǵarılǵan PHP 5.4 ke kirgizildi, mısalı, treytlerdi qollap-quwatlaw hám jańa «qısqa massiv sintaksisi». Sonnan keyin PHP 5.5 (2013-jıl iyun) hám 5.6 (2014-jıl avgust) versiyalarında kóbirek qosımsha ózgerisler boldı.
PHP 5.3 hám 5.4 versiyaları ushın tek 32-bitlik IA-32 qurılısları ǵana bar Microsoft Windows ekilik tarqatıwları bolǵan,[32][33] bul 64-bitlik Windows platformasında Internet Information Services (IIS) paydalanǵanda Windows 32-bitlik sáykeslik rejiminde islewdi talap etken. PHP 5.5 versiyası Microsoft Windows ushın 64-bitlik x86-64 qurılısların qoljetimli etti[34].
PHP 5.6 ushın rásmiy qáwipsizlik qollap-quwatlawı 2018-jıl 31-dekabrde juwmaqlandı[35].
PHP 7.x (2015-jıldan 2019-jılǵa shekem)
2014 hám 2015-jıllar dawamında jańa úlken PHP versiyası, PHP 7.0 islep shıǵarıldı. Bul versiyanıń nomerleniwi ishki islep shıǵıwshılar arasında biraz talqılawǵa sebep boldı[36]. PHP 6 Unicode tájiriybeleri hesh qashan shıǵarılmaǵan bolsa da, bir neshe maqalalar hám kitap atamaları PHP 6 atamalarına silteme bergen edi, bul eger jańa reliz sol attı qayta paydalansa, aljasıwǵa alıp keliwi múmkin edi[37]. Dawıs beriwden keyin PHP 7 atı tańlandı[38].
PHP 7.0 diń tiykarı dáslep PHP keyingi áwladı (phpng) dep atalǵan PHP tarmaǵı bolıp tabıladı. Onı Dmitriy Stogov, Xinchen Xuy hám Nikita Popov jazǵan,[39] hám derlik tolıq til sáykesligin saqlap qalǵan jaǵdayda Zend Engine-di refaktorlaw arqalı PHP ónimdarlıǵın optimallastırıwdı maqset etken[40]. 2014-jıl 14-iyulǵa kelip, phpng proekti ushın tiykarǵı benchmark kompleksi retinde xızmet etken WordPress tiykarındaǵı benchmarklar ónimdarlıqtıń derlik 100% artıwın kórsetti. phpng-daǵı ózgerisler keleshektegi versiyalarda ónimdarlıqtı jaqsılawdı ańsatlastıradı, sebebi ıqsham maǵlıwat strukturaları hám basqa ózgerisler tez waqıtta kompilyaciya etiwshi (JIT) kompilyatorına sátli kóshiw ushın jaqsıraq sáykes keledi dep esaplanadı[41]. Áhmiyetli ózgerislerge baylanıslı, qayta islengen Zend Engine Zend Engine 2 niń ornına Zend Engine 3 dep ataldı, ol PHP 5.x te qollanılǵan edi[42].
phpng-daǵı úlken ishki ózgerislerge baylanıslı, ol PHPdiń shıǵarıw procesine sáykes, kishi PHP 5 relizi ornına PHPdiń jańa úlken versiya nomerin alıwı kerek edi. PHPdiń úlken versiyaları kodtıń keri sáykesligin buzıwǵa ruqsat etedi, sonlıqtan PHP 7 keri sáykeslikti buzıwdı talap etetuǵın phpng-dan tıs basqa jaqsılanıwlar ushın múmkinshilik berdi. Atap aytqanda, ol tómendegi ózgerislerdi óz ishine aldı:
- Kóplegen qáwipli yamasa qayta tiklenetuǵın dárejedegi eski PHP qátelik mexanizmleri zamanagóy obyektke baǵdarlanǵan ayrıqsha jaǵdaylar menen almastırıldı.
- Ózgeriwshilerdi dereferenciyalaw sintaksisi ishki jaqtan kóbirek izbe-iz hám tolıq bolıwı ushın qayta islendi, bul
->,[],(),{}hám::operatorların qálegen mánili shep táreptegi ańlatpalar menen paydalanıwǵa imkaniyat berdi[43]. foreachoperatorınıń islew tártibi kóbirek aldınnan boljanatuǵın bolıwı ushın ózgertildi[44].- Sátsizlikke ushıraǵanda null qaytaratuǵın bir neshe PHPge ornatılǵan klasslar ushın konstruktorlar izbe-izlik ushın onıń ornına ayrıqsha jaǵday taslaytuǵın etip ózgertildi[45].
- Bir neshe qollap-quwatlanbaytuǵın yamasa eskirgen server qosımsha programmalastırıw interfeysleri (SAPI) hám keńeytpeler PHP yadrosınan alıp taslandı, eń áhmiyetlisi eski
mysqlkeńeytpesi[46]. list()operatorınıń islew tártibi qatarlardı qollap-quwatlawdı alıp taslaw ushın ózgertildi[47].- Eski ASP stilindegi shegaralawshılar
<%hám%>hám<script language="php"> ... </script>ushın qollap-quwatlaw alıp taslandı[48]. - switch operatorınıń bir neshe
defaultbólimge iye bolıwına imkaniyat beretuǵın qátelik dúzetildi[49]. - Qatarlardan san tiplerine ayırım jasırın túrlendiriwlerde on altılıq sanlardı qollap-quwatlaw alıp taslandı[50].
- Shepke jıljıtıw hám ońǵa jıljıtıw operatorları platformalar arasında anaǵurlım izbe-iz isleytuǵın etip ózgertildi[51].
- Haqıyqıy sanlar menen pútin sanlar arasındaǵı túrlendiriwler ózgertildi (mısalı, sheksizlik nolge túrlenetuǵın boldı) hám platformalar arasında anaǵurlım izbe-iz ámelge asırıldı[52].
PHP 7 sonday-aq jańa til ózgesheliklerin de óz ishine aldı. Eń áhmiyetlisi, ol bar bolǵan parametr tipi járiyalanıwların[53] tolıqtırıwshı funkciyalar ushın qaytarılatuǵın tip járiyalanıwların hám parametr hám qaytarılatuǵın tip járiyalanıwlarında skalyar tiplerdi (pútin san, haqıyqıy san, qatar hám logikalıq) qollap-quwatlawdı kirgizdi[54].
PHP 8.x (2020-jıldan baslap)
PHP 8.0 2020-jıl 26-noyabrde shıǵarıldı. PHP 8.0 — bul úlken versiya bolıp, aldıńǵı versiyalardan ayırmashılıq etetuǵın ózgerislerge iye[55][56]. Jańa ózgeshelikler hám áhmiyetli ózgerislerge tómendegiler kiredi:
- Tez waqıtta kompilyaciyalaw (JIT). PHP 8-diń JIT kompilyatorı ayırım qollanıw jaǵdaylarında áhmiyetli ónimdarlıqtı jaqsılawdı támiyinley aladı,[57][58], PHP islep shıǵıwshısı Nikita Popovtıń aytıwınsha, kópshilik veb-saytlar ushın ónimdarlıqtıń jaqsılanıwı PHP 5-ten PHP 7-ge ótiwdegiden azıraq áhmiyetli boladı[59]. Áhmiyetli jaqsılanıwlar ádettegi veb-baǵdarlamalastırıw qollanıw jaǵdaylarına qaraǵanda matematikalıq tiptegi operaciyalar ushın kóbirek kútiledi. Bunnan tısqarı, JIT kompilyatorı ayırım qollanıw jaǵdaylarında ónimdarlıqtıń jaqsılanıwı sebepli, ayırım kodtı C-den PHP-ge kóshiriw ushın keleshekte múmkinshilik beredi[60].
matchańlatpası[61]. match ańlatpası konseptual jaqtanswitchoperatorına uqsas hám ayırım qollanıw jaǵdaylarında anaǵurlım qısqaraq[62].matchańlatpa bolǵanlıqtan, onıń nátiyjesi ózgeriwshige tayınlanıwı yamasa funkciyadan qaytarılıwı múmkin[63].- birlik tipleri, jańa
staticqaytarılatuǵın tip hám jańamixedtip. - «Atributlar», basqa programmalastırıw tillerinde kóbinese «annotaciyalar» dep ataladı, bul klasslarǵa metamaǵlıwmat qosıwǵa imkaniyat beredi.
throwoperator bolıwdan ańlatpa bolıwǵa ózgertildi. Bul aldın múmkin bolmaǵan jerlerde ayrıqsha jaǵdaylardı taslawǵa imkaniyat beredi.- bir qatar scenariylerde alternativ, anaǵurlım qısqa yamasa anaǵurlım izbe-iz sintaksislerge imkaniyat beretuǵın ózgerisler. Mısalı, nullsafe operatorı null birlestiriw operatorı
??-ǵa uqsas, biraq metodlardı shaqırǵanda qollanıladı. - Konstruktor qásiyetin alǵa ilgerletiw «sintaksislik qolaylıq» retinde, klass qásiyetleriniń klass konstruktorına parametrler berilgende avtomat túrde ornatılıwına imkaniyat beredi. Bul jazılıwı kerek bolǵan shablon kodınıń muǵdarın azaytadı[64].
- Interfeyslerge hár túrli dúzetiwler, mısalı, interfeyslerden
DateTimeobyektlerin jaratıwdı qollap-quwatlawdı qosıw hám tip kórsetiw ushın paydalanılıwı múmkin bolǵanStringableinterfeysin qosıw. str_contains(),str_starts_with()hámstr_ends_with()sıyaqlı hár túrli jańa funkciyalar;fdiv();[65]get_debug_type(); hámget_resource_id()- PHPdiń C derek kodındaǵı tip annotaciyaları, ishki funkciyalar hám metodlardıń «refleksiyada tolıq tip informaciyasına» iye bolıwına imkaniyat beredi[66].
PHP 8.1 2021-jıl 25-noyabrde shıǵarıldı[67]. Ol sanawlarǵa (enums dep te ataladı), qásiyetlerdi tek oqıw ushın dep járiyalawǵa (bul qásiyettiń inicializaciyadan keyin ózgertiliwin aldın aladı) hám qatar giltleri bar massivti ashıwǵa qollap-quwatlawdı qostı. Jańa never tipi funkciyanıń mánis qaytarmaytuǵının kórsetiw ushın paydalanılıwı múmkin[68].
PHP 8.2 2022-jıl 8-dekabrde shıǵarıldı[69]. Bul relizdiń jańalıqları: tek oqıw ushın klasslar (olarınıń dana qásiyetleri jasırın túrde tek oqıw ushın), dizyunktiv normal forma (DNF) tipleri hám obyektke baǵdarlanǵan API menen psevdo-tosınarlı san generatorın usınatuǵın random keńeytpesi,[70] Sezgir Parametr mánisin jasırıw hám basqa da kóplegen ózgeshelikler.
PHP 8.3 2023-jıl 23-noyabrde shıǵarıldı. Bul reliz tek oqıw ushın massiv qásiyetlerin kirgizdi, bul massivlerdiń inicializaciyadan keyin ózgermeytuǵın dep járiyalanıwına imkaniyat berdi. Ol sonday-aq ornatılǵan PHP klassları ushın klass psevdonimlerin, Random keńeytpesinde tosınarlı haqıyqıy san generaciyalaw ushın jańa metodlardı hám qaytarılatuǵın mánis qollap-quwatlawı bar jaqsılanǵan PHP INI sazlawların qostı. Sonıń menen bir qatarda, jańa stream_context_set_options funkciyası basqa jańalanıwlar hám eskirgenler menen birge, aǵım manipulyaciyası ushın jaqsılanǵan API usınadı.
PHP 8.4 2024-jıl 21-noyabrde shıǵarıldı.
Tumar

PHP joybarınıń tumarı — elePHPant, bul qaptalında PHP logotibi bar kók pil bolıp, onı 1998-jılı[71] Vinsent Pontier[72] proektlestirgen. «(PHP) háriplerine qaptaldan qaraǵanda, pildiń formasın payda etedi.»[73]
elePHPant geyde jumsaq oyınshıq formasında bolǵanda hár túrli reńde boladı[74]. Bul fizikalıq tumardıń kóplegen variantları jıllar dawamında jasalǵan. Tek ǵana Vinsent Pontierdiń dáslepki dizaynına tiykarlanǵan elePHPantlar jámiyetshilik tárepinen rásmiy dep esaplanadı[75]. Olar kollekciyalıq bolıp, ayırımları júdá siyrek ushırasadı[76].
Sintaksis

Tómendegi «Sálem, álem!» programması HTML hújjetine jaylastırılǵan PHP kodında jazılǵan:
<!DOCTYPE html>
<html>
<head>
<title>PHP "Hello, World!" program</title>
</head>
<body>
<p><?= 'Hello, World!' ?></p>
</body>
</html>
Degen menen, PHP kodınıń HTMLge jaylastırılıwı ushın hesh qanday talap joq bolǵanlıqtan, «Sálem, álem!» niń eń ápiwayı versiyasın tómendegishe jazıwǵa boladı, bunda jabıwshı teg ?> taza PHP kodın óz ishine alǵan fayllarda maqul kórilgenindey túsirilip qaldırılǵan[77].
<?php echo 'Hello, World!';
PHP interpretatorı tek óziniń shegaralawshıları ishinde PHP kodın orınlaydı. Onıń shegaralawshılarınan tıs hár qanday nárse PHP tárepinen qayta islenbeydi, degen menen PHP emes tekst ele de PHP kodında súwretlengen basqarıw strukturalarına boysınadı. Eń keń tarqalǵan shegaralawshılar PHP bólimlerin ashıw ushın <?php hám jabıw ushın ?> bolıp tabıladı. Qısqartılǵan forma <? da bar. Bul qısqa shegaralawshı skript faylların azıraq portativli etedi, sebebi olarǵa qollap-quwatlaw jergilikli PHP konfiguraciyasında óshiriliwi múmkin, sonlıqtan onı qollanıw usınıs etilmeydi[78][79]. Kerisinshe, echo qısqa tegi <?= ge qarsı hesh qanday usınıs joq[80]. PHP 5.4.0 ge shekem, echo ushın bul qısqa sintaksis tek short_open_tag konfiguraciya sazlawı qosılǵanda ǵana islegen, al PHP 5.4.0 hám onnan keyingiler ushın ol bárqulla qoljetimli[81][82]. Bul barlıq shegaralawshılardıń maqseti PHP kodın JavaScript kodı yamasa HTML belgilewi sıyaqlı PHP emes kontentten ajıratıw bolıp tabıladı[83]. Solay etip, PHPde jazılǵan eń qısqa «Sálem, álem!» programması:
<?='Hello, World!';
Shegaralawshılardıń birinshi forması, <?php hám ?>, XHTML hám basqa XML hújjetlerinde durıs qáliplesken XML qayta islew kórsetpelerin payda etedi[84]. Bul server táreptegi fayldaǵı PHP kodı hám basqa belgilewlerdiń nátiyjesindegi aralaspası óz-ózinen jaqsı qáliplesken XML bolıp tabılatuǵının ańlatadı.
Ózgeriwshilerdiń aldına dollar belgisi qoyıladı hám tipin aldınnan kórsetiw kerek emes. PHP 5 funkciyalardıń óz parametrlerin belgili bir klasstıń obyektleri, massivler, interfeysler yamasa keri shaqırıw funkciyaları bolıwına májbúrlewge imkaniyat beretuǵın tip járiyalanıwların kirgizdi. Degen menen, PHP 7 ge shekem tip járiyalanıwları pútin sanlar yamasa qatarlar sıyaqlı skalyar tipler menen qollanılıwı múmkin emes edi.
Tómende PHP ózgeriwshileriniń qalay járiyalanatuǵını hám dáslepki mánis beriletuǵını haqqında mısal keltirilgen.
<?php
$name = 'Djon'; // qatar tipindegi ózgeriwshi járiyalanıp, inicializaciyalanbaqta
$age = 18; // pútin san tipindegi ózgeriwshi járiyalanıp, inicializaciyalanbaqta
$height = 5.3; // qos dálliktegi ózgeriwshi járiyalanıp, inicializaciyalanbaqta
echo $name . ' is ' . $height . "m tall\n"; // ózgeriwshiler menen qatarlardı biriktiriw
echo "$name is $age years old."; // ózgeriwshilerdi qatarǵa interpolyaciyalaw
?>
Funkciya hám klass atlarınan ayırmashılıǵı, ózgeriwshi atları háriplerdiń úlken-kishiligine sezgir. Qos tırnaqshalı ("") hám heredoc qatarları ózgeriwshiniń mánisin qatarǵa interpolyaciyalaw imkaniyatın beredi[85]. PHP jańa qatarlardı erkin formalı til sıyaqlı bos orın retinde qarastıradı hám operatorlar útirli noqat penen tamamlanadı[86]. PHPde kommentariyalardıń úsh túrli sintaksisi bar: /* */ blok hám qatar ishindegi kommentariyalardı belgileydi; // yamasa # bir qatarlı kommentariyalar ushın qollanıladı[87]. echo operatorı PHPdiń tekstti shıǵarıw ushın usınatuǵın bir neshe qurallarınıń biri bolıp tabıladı.
Gilt sózler hám til sintaksisi boyınsha PHP C stilindegi sintaksiske uqsas. if shártleri, for hám while ciklleri hám funkciyadan qaytarıwlar C, C++, C#, Java hám Perl sıyaqlı tillerdegige uqsas sintaksiske iye.
Maǵlıwmat tipleri
PHP hálsiz tiplestirilgen. Ol pútin sanlardı platformaǵa baylanıslı diapazonda, yamasa C tilindegi long tipine ekvivalent 32, 64 yamasa 128-bitlik belgili pútin san retinde saqlaydı. Belgisiz pútin sanlar belgili jaǵdaylarda belgili mánislerge aylandırıladı, bul basqa kóplegen programmalastırıw tillerinen ayırmashılıq etedi[88]. Pútin san ózgeriwshilerine onlıq (oń hám teris), segizlik, on altılıq hám ekilik belgilewler arqalı mánis beriwge boladı[89].
Haqıyqıy sanlar da platformaǵa tán diapazonda saqlanadı. Olar haqıyqıy san belgilewi yamasa ilimiy belgilewdiń eki forması arqalı kórsetiliwi múmkin[90]. PHPde Java hám C++ tegi jergilikli logikalıq tiplerge uqsas jergilikli logikalıq tipi bar. Logikalıq tipke aylandırıw qaǵıydaların paydalanıp, nol emes mánisler durıs (true) dep, al nol jalǵan (false) dep interpretaciyalanadı, Perl hám C++ tegi sıyaqlı.
null maǵlıwmat tipi mánisi joq ózgeriwshini bildiredi; NULL bul maǵlıwmat tipi ushın ruqsat etilgen jalǵız mánis bolıp tabıladı.
«Resurs» tipindegi ózgeriwshiler sırtqı dereklerden alınǵan resurslarǵa siltemelerdi bildiredi. Olar ádette belgili bir keńeytpeniń funkciyaları tárepinen jaratıladı hám tek sol keńeytpeniń funkciyaları tárepinen ǵana qayta isleniwi múmkin; mısallarǵa fayl, súwret hám maǵlıwmatlar bazası resursları kiredi.
Massivler PHP qayta isley alatuǵın hár qanday tiptegi elementlerdi, sonıń ishinde resurslardı, obyektlerdi hám hátte basqa massivlerdi de óz ishine ala aladı. Tártip mánisler diziminde de, giltleri hám mánisleri bar xeshlerde de saqlanadı hám ekewi de aralastırılıwı múmkin. PHP sonday-aq qatarlardı da qollap-quwatlaydı, olar bir tırnaqsha, qos tırnaqsha, nowdoc yamasa heredoc sintaksisi menen qollanılıwı múmkin[91].
Standart PHP Kitapxanası (SPL) standart máselelerdi sheshiwge háreket etedi hám nátiyjeli maǵlıwmatlarǵa kiriw interfeysleri menen klassların ámelge asıradı[92].
Derekler
- ↑ «PHP: Hypertext Preprocessor». Qaraldı: 12-fevral 2020-jıl.
- ↑ Krill, Paul «Believe the hype: PHP founder backs Facebook's HipHop technology» (en). InfoWorld (18-noyabr 2013-jıl). Qaraldı: 13-oktyabr 2022-jıl.
- ↑ «Announce: Personal Home Page Tools (PHP Tools)». Qaraldı: 3-noyabr 2022-jıl.
- ↑ «History of PHP and related projects». The PHP Group. Qaraldı: 25-fevral 2008-jıl.
- ↑ «History of PHP». php.net.
- ↑ Olsson, Mikael. PHP Quick Scripting Reference (en). Apress, 4 September 2013. ISBN 978-1-4302-6284-8.
- ↑ PHP Manual: Preface, PHP.
- ↑ «Introduction: What can PHP do?». PHP Manual. 16-fevral 2009-jılda túp nusqadan arxivlendi. Qaraldı: 5-mart 2009-jıl.
- ↑ «Helicopter: Port of node-ar-drone which allows user to control a Parrot AR Drone over PHP». JoliCode (11-yanvar 2019-jıl). Qaraldı: 23-fevral 2019-jıl.
- ↑ «PHP: Unsupported Branches».
- ↑ Lerdorf, Rasmus «I wonder why people keep writing that PHP was ever written in Perl. It never was. #php». Twitter (20-iyul 2012-jıl). Qaraldı: 4-sentyabr 2014-jıl.
- ↑ Lerdorf, Rasmus «PHP on Hormones» (mp3). The Conversations Network (26-aprel 2007-jıl). 6-yanvar 2019-jılda túp nusqadan arxivlendi. Qaraldı: 22-iyun 2009-jıl.
- ↑ Lerdorf, Rasmus «Slide 3». slides for 'PHP on Hormones' talk. The PHP Group (2007). Qaraldı: 22-iyun 2009-jıl.
- ↑ Lerdorf, Rasmus «Announce: Personal Home Page Tools (PHP Tools)» (8-iyun 1995-jıl). Qaraldı: 7-iyun 2011-jıl.
- ↑ «Rasmus Lerdorf, Senior Technical Yahoo: PHP, Behind the Mic» (19-noyabr 2003-jıl). 28-iyul 2013-jılda túp nusqadan arxivlendi.
- ↑ Alshetwi, A.B.; Rahmat, R. A. A. O.; Borhan, M. N.; Ismael, S.; Ali, A. «Web-Based Expert System for Optimizing of Traffic Road in Developing Countries» (2018). Qaraldı: 13-fevral 2024-jıl.
- ↑ «Problems with PHP». Qaraldı: 20-dekabr 2010-jıl.
- ↑ «php.internals: Re: Function name consistency». news.php.net (28-dekabr 2013-jıl). Qaraldı: 9-fevral 2014-jıl.
- ↑ «PHP – Acronym Meaning Vote». PHP.net. 15-avgust 2000-jılda túp nusqadan arxivlendi.
- ↑ «Zend Engine version 2.0: Feature Overview and Design». Zend Technologies Ltd.. 19-iyul 2006-jılda túp nusqadan arxivlendi. Qaraldı: 17-sentyabr 2006-jıl.
- ↑ «php.net 2007 news archive». The PHP Group (13-iyul 2007-jıl). Qaraldı: 22-fevral 2008-jıl.
- ↑ Kerner, Sean Michael «PHP 4 is Dead—Long Live PHP 5». InternetNews (1-fevral 2008-jıl). 6-avgust 2018-jılda túp nusqadan arxivlendi. Qaraldı: 16-dekabr 2018-jıl.
- ↑ Trachtenberg, Adam. «Why PHP 5 Rocks!». O'Reilly (15-iyul 2004-jıl). 31-mart 2016-jılda túp nusqadan arxivlendi. Qaraldı: 22-fevral 2008-jıl.
- ↑ «PHP projects join forces to Go PHP 5». GoPHP5 Press Release. 4-avgust 2019-jılda túp nusqadan arxivlendi. Qaraldı: 23-fevral 2008-jıl.
- ↑ «GoPHP5». GoPHP5. 27-aprel 2011-jılda túp nusqadan arxivlendi. Qaraldı: 22-fevral 2008-jıl.
- ↑ «Types: Strings (PHP Manual)». PHP.net. Qaraldı: 22-sentyabr 2013-jıl.
- ↑ «Details of the String Type (PHP Manual)». PHP.net. Qaraldı: 22-sentyabr 2021-jıl.
- ↑ «PHP 5.5 or 6.0». Qaraldı: 9-fevral 2014-jıl.
- ↑ Andrei Zmievski. «The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6» (22-aprel 2011-jıl). Qaraldı: 9-fevral 2014-jıl.
- ↑ «Late Static Binding in PHP». Digital Sandwich (23-fevral 2006-jıl). Qaraldı: 25-mart 2008-jıl.
- ↑ «Static Keyword». The PHP Group. Qaraldı: 25-mart 2008-jıl.
- ↑ «PHP for Windows: Binaries and sources releases (5.3)». php.net. Qaraldı: 29-oktyabr 2013-jıl.
- ↑ «PHP for Windows: Binaries and sources releases (5.4)». php.net. Qaraldı: 29-oktyabr 2013-jıl.
- ↑ «PHP for Windows: Binaries and sources releases (5.5)». php.net. Qaraldı: 29-oktyabr 2013-jıl.
- ↑ «PHP: Supported Versions».
- ↑ «The Neverending Muppet Debate of PHP 6 v PHP 7». 19-noyabr 2015-jılda túp nusqadan arxivlendi. Qaraldı: 19-noyabr 2015-jıl.
- ↑ «RFC: Name of Next Release of PHP». php.net (7-iyul 2014-jıl). Qaraldı: 15-iyul 2014-jıl.
- ↑ «Re: [PHP-DEV [VOTE] [RFC] Name of Next Release of PHP (again)»] (30-iyul 2014-jıl). Qaraldı: 30-iyul 2014-jıl.
- ↑ «phpng: Refactored PHP Engine with Big Performance Improvement». news.php.net.
- ↑ «PHP: rfc:phpng». php.net. Qaraldı: 16-dekabr 2014-jıl.
- ↑ «PHP: phpng». php.net. Qaraldı: 15-iyul 2014-jıl.
- ↑ «Merge branch 'ZendEngine3'». github.com (5-dekabr 2014-jıl). Qaraldı: 5-dekabr 2014-jıl.
- ↑ «PHP RFC: Uniform Variable Syntax». php.net (31-may 2014-jıl). Qaraldı: 30-iyul 2014-jıl.
- ↑ «PHP RFC: Fix "foreach" behavior». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: Constructor behaviour of internal classes». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: Removal of dead or not yet PHP7 ported SAPIs and extensions». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: Fix list() behavior inconsistency». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: Remove alternative PHP tags». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: Make defining multiple default cases in a switch a syntax error». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: Remove hex support in numeric strings». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: Integer Semantics». php.net. — „Making NaN and Infinity always become zero when cast to integer means more cross-platform consistency, and is also less surprising than what is currently produces“. Qaraldı: 21-may 2015-jıl.
- ↑ «PHP RFC: ZPP Failure on Overflow». php.net. Qaraldı: 21-may 2015-jıl.
- ↑ «RFC: Return Types». php.net (27-yanvar 2015-jıl). Qaraldı: 28-yanvar 2015-jıl.
- ↑ «RFC: Scalar Type Declarations». php.net (16-mart 2015-jıl). Qaraldı: 17-mart 2015-jıl.
- ↑ Brent. «What's new in PHP 8». Stitcher. Qaraldı: 22-sentyabr 2020-jıl.
- ↑ «PHP 8 Released». PHP. Qaraldı: 27-noyabr 2020-jıl.
- ↑ Brent. «PHP 8: JIT performance in real-life web applications». Stitcher.io. Qaraldı: 4-oktyabr 2020-jıl.
- ↑ Rethams, Derick «PHP 8: A Quick Look at JIT».
- ↑ Popov, Nikita «"What's new in PHP 8.0?" Nikita Popov». PHP fwdays (13-iyul 2020-jıl). 11-dekabr 2021-jılda túp nusqadan arxivlendi. Qaraldı: 4-oktyabr 2020-jıl. Úlgi:Cbignore
- ↑ Daniele, Carlo «What's New in PHP 8 (Features, Improvements, and the JIT Compiler)». Kinsta (25-may 2020-jıl). Qaraldı: 24-dekabr 2020-jıl.
- ↑ Redmond, Paul «Match Expression is Coming to PHP 8». Laravel News (15-iyul 2020-jıl). Qaraldı: 4-oktyabr 2020-jıl.
- ↑ «PHP 8.0: Match Expressions». PHP Watch. Qaraldı: 4-oktyabr 2020-jıl.
- ↑ Barnes, Eric «PHP 8 is now Released!». Laravel News (27-noyabr 2020-jıl). Qaraldı: 24-dekabr 2020-jıl.
- ↑ Roose, Brent «PHP 8: Constructor property promotion». Qaraldı: 30-aprel 2024-jıl.
- ↑ Merchant, Amit «These new string functions are coming in PHP 8». Amit Merchant (13-iyun 2020-jıl). Qaraldı: 4-oktyabr 2020-jıl.
- ↑ Popov, Nikita «Call for participation: Annotating internal function argument and return types». Externals. Qaraldı: 19-noyabr 2020-jıl.
- ↑ «PHP 8 ChangeLog». PHP.net. Qaraldı: 5-yanvar 2024-jıl.
- ↑ «PHP: PHP 8.1.0 Release Announcement». PHP.net. Qaraldı: 5-yanvar 2024-jıl.
- ↑ «PHP 8 ChangeLog». PHP.net. Qaraldı: 5-yanvar 2024-jıl.
- ↑ «PHP: PHP 8.2.0 Release Announcement». PHP.net. Qaraldı: 5-yanvar 2024-jıl.
- ↑ «PHP: ElePHPant» (4-oktyabr 2014-jıl). Qaraldı: 4-oktyabr 2014-jıl.
- ↑ «Redirecting…». wwphp-fb.github.io.
- ↑ «The PHP Mascot's Birth – Creator Of The elePHPant Vincent Pontier Reveals The True Story!». 7php.com (6-yanvar 2014-jıl).
- ↑ «ElePHPant» (en). PHP.earth. Qaraldı: 13-fevral 2024-jıl.
- ↑ «PHP: ElePHPant». www.php.net.
- ↑ «A Field Guide to Elephpants». afieldguidetoelephpants.net.
- ↑ «tags – Manual». php.net. Qaraldı: 17-fevral 2014-jıl.
- ↑ «PHP: rfc:shortags». php.net (3-aprel 2008-jıl). Qaraldı: 8-may 2014-jıl.
- ↑ «PHP: Basic syntax». The PHP Group. Qaraldı: 22-fevral 2008-jıl.
- ↑ «Basic Coding Standard». PHP Framework Interoperability Group. Qaraldı: 3-yanvar 2016-jıl.
- ↑ «echo – Manual». php.net. Qaraldı: 17-fevral 2014-jıl.
- ↑ «Description of core php.ini directives – Manual». php.net (17-mart 2002-jıl). Qaraldı: 17-fevral 2014-jıl.
- ↑ «Your first PHP-enabled page». The PHP Group. Qaraldı: 25-fevral 2008-jıl.
- ↑ Bray, Tim «Processing Instructions». Extensible Markup Language (XML) 1.0 (Fifth Edition). W3C (26-noyabr 2008-jıl). Qaraldı: 18-iyun 2009-jıl.
- ↑ «Variables». The PHP Group. Qaraldı: 16-mart 2008-jıl.
- ↑ «Instruction separation». The PHP Group. Qaraldı: 16-mart 2008-jıl.
- ↑ «Comments». The PHP Group. Qaraldı: 16-mart 2008-jıl.
- ↑ «Integers in PHP, running with scissors, and portability». MySQL Performance Blog (27-mart 2007-jıl). Qaraldı: 28-mart 2007-jıl.
- ↑ «Integers». PHP Manual. The PHP Group. Qaraldı: 26-may 2025-jıl.
- ↑ «Types». The PHP Group. Qaraldı: 16-mart 2008-jıl.
- ↑ «Strings». The PHP Group. Qaraldı: 21-mart 2008-jıl.
- ↑ «SPL – StandardPHPLibrary». PHP.net (16-mart 2009-jıl). Qaraldı: 16-mart 2009-jıl.