Lingua PHP evoluta est sine norma autdesignatione formali, instructione prima munere normaede facto functa, quam aliae instructiones sequi nisae sunt.
W3Techs rettulit die23 Maii2024 (sex mensibus post PHP 8.3 editam) ea 76.2 centesimas omnium situum interretialium uti, quorum lingua cognosci potuit. Horum 55.1 centesimae PHP 7 utebantur, quam obsoletam et insecuram esse constat.[8][9]
<!--include /text/header.html--><!--getenv HTTP_USER_AGENT--><!--if substr $exec_result Mozilla--> Ohe, Netscape uteris!<p><!--endif--><!--sql database select * from table where user='$username'--><!--ifless $numentries 1--> Miseremur, ea mentio non exstat<p><!--endif exit--> Bene advenisti<!--$user-->!<p> Tibi<!--$index:0--> credita in computo manent.<p><!--include /text/footer.html-->
PHP/FI erat utilis adpaginas mobiles et simplices struendas. Utmenda celerius indicarentur programmaque melius fieret, Lerdorf primum PHP/FI editam esse die8 Iunii1995 in collocutioneUsenetcomp.infosystems.www.authoring.cgi nuntiavit sub nominePersonal Home Page Tools (PHP Tools) version 1.0 "Instrumenta Paginis Principalibus Personarum (Instrumenta PHP), forma 1.0".[14][15] Quae editio facultates communes, utvariabilia modi Perl, formulas tractare, etHTML continere, habebat.Syntaxis PHP iam sic mutata erat ut similis essetPerl; erat quidem simplicior, minus potens, minusque constans.[16][17][18]
PHP primo tempore haud adlinguae programmandi munus destinabatur; potius per se crescebat. Lerdorf postea haec memoravit: "Eam sistere nescio [. . .] numquam fuit consilium linguam programmandi scribere [. . .] Linguam programmandi scribere minime scirem. [. . .] Modo gradum ratione proximum addere pergebam."[19] Sodalitas molientium formari coepit, et postquam per plures menses laboratum eststadiumque beta tentatum, PHP/FI 2 rite edita est mense Novembri 1997.[20]
Eo, quod PHP non ab origine excogitata est sed per se crevit, nomina functionum et ordo illarumparametrorum sunt inconstantia.[21] Quaedam nomina functionum bibliothecis inferioribus, quas PHP "volvebat", adaequata sunt,[22] et in quibusdam formis veterrimis linguae, cum longitudo nominis interne utfunctiohash usurparetur, nomina ita fingebantur ut numerihash optime distribuerentur.[23]
Die1 Iulii2004 edita est PHP 5, quam movebat novum Ingenium Zend II.[18] Haec virtutes novas ferebat, utprogrammaturam ad res directam, additrumPHP Data Objects (PDO, "Res Data PHP") appellatum (quod levem et constantem interfaciem, qua repositoria datorum adeantur, definit), multaque alia, quibus opera emendarentur.[28] Post annum2008, sola haec forma evolvebatur.Annexus stabilis serus, qui formis prioribus defuerat, PHP 5.3 additus est.[29][30]
Multa clara incepta fontibus apertis linguae PHP 4 in programmate novo a die5 Februarii2008 subsidium omiserunt, consociatione GoPHP5[31] ab evolutoribus PHP constituta et a PHP 4 ad PHP 5 transire suadente.[32][33]
Interpretes linguae PHP plerisque systematibus internis32 et64 bitorum praebebantur, sive ex programmate fontano structi erant sive binaria praestructa usurpata erant.[34] Formis PHP 5.3 et 5.4 inMicrosoft Windows solae distributiones binariae praebitae sunt 32 bitorum machinaeIA-32,[35][36] quae modum consociabilem postulabant dumInternet Information Services (IIS) in suggestu Windows 64 bitorum agitur. Forma PHP 5.5 machinae 64 bitorumx86-64 praeberi in Microsoft Windows potuerunt.[37]
Fama PHP vitiabatur quiaUnicodicem sub nucleo linguistico ope sua non sustinebat.[39][40] Anno2005 Andrea Zmievski duce propositum est ut facultasUnicodicis per totam PHP inferretur imponenda bibliothecaElementorum Unicodicis Omnium Gentium (ICU) lineisque textus interne perUTF-16 exprimendis.[41] Haec, cum et interna linguae et programma usorum magnopere mutatura essent, mens erat in linguae forma 6.0 edere cum aliis magnis virtutibus quae tunc evolvebantur.[42]
Tamen, paucis evolutoribus mutanda intellegentibus operibusque programmatis impeditis convertendo in UTF-16 aut ex UTF-16, quo in rebus interretialibus homines uti non solent, proposita tardabantur.[43] Itaque forma PHP 5.3 creata est anno2009, multis virtutibus (Unicodice excepto) de PHP 6 retroportatis. Inter has gravia sunt spatia nominalia. Martio2010 inceptum rite destitutum est, et forma PHP 5.4 parata est, qua pleraeque ceterae virtutes PHP 6 comprehenderentur, inter alia qualitates et renexio clausurarum.[44] Nova consilia de Unicodice accipiendo sperabantur sed ante annum2014 non capta erant.
Per annos2014 et2015 effecta est nova PHP forma, et appellata PHP 7; qui numerus controversiae fuit inter molitores internos.[45] Cum tentamina de Unicodice sub nomine PHP 6 numquam edita essent, tamen nonnulli articulorum et librorum tituli hocvocabulo usi erant, quod res turbaturum esse videbatur si novo edito idem nomen daretur.[46] Latis suffragiis, nomen PHP 7 est lectum.[47]
PHP 7 fundamentum estramus linguae, quae primumPHP next generation seuphpng (PHP aevi proximi) dicebatur. Huicauctores fuerunt Demetrius Stogov, Xinchen Hui, et Nicetas Popov,[48] et consilium fuit reformare Ingenium Zendianum ut opera linguae levarentur, sed consociabilitatem linguae paene integram servare.[49] Iam ante diem14 Iulii2014, mensurae perWordPress (quae mensurae praecipuae propositi phpng semper fuerunt) opera paene centum centesimis meliora indicabant. Mutata in phpng sic facta sunt ut opera formarum futurarum meliora reddere facilius fieret, cum structurae datorum magis compactae et alia mutata aptiora viderentur esse si consilium foret migrare adcompilatrum in praesens.[50] Ob mutata non parva, Ingenio Zendiano refecto numerus "Ingenium Zend 3" inditus est, cum post Ingenium Zend 2, quo in PHP 5 usi erant, sequeretur.[51]
Propter magna mutata interna in phpng, necesse erat ut inderetur numerusformae maioris, non editi minoris numeri PHP 5, secundum consilium PHP de edendo.[52] Cum formis maioribus PHP rumpere consociabilitatem retrorsus programmatis liceret, PHP 7 occasionem faciebat aliorum quoque profectuum, qui consociabilitatem rumpebant, e quibus hos memorare dignamur:
Multis traditis modis erroris, seu fatalibus seu sanabilibus,exceptiones sunt suppositae, quae moderna consuetudine ad res diriguntur.[53]
Syntaxis, qua relatio variabilis omittebatur, ita refecta est ut operatra->,[],(),{}, et:: cum quibuslibet litteris sinistro latere adhiberi possent.[54]
Subsidium modis traditis construendi, qualia in PHP 4 exstabant, omissum est.[55]
Conversiones inter numeros cum puncto mobili et integros mutatae (e.g. infinitum ut in zerum converteretur) et constantius per varios suggestus instructae sunt.[63][64]
Lingua PHP 7 etiam novas virtutes habebat. Insignissima sunt ad functiones pronuntiatio generum reditus illata[65] - quod est complementum pronuntiationi generum parametrorum, quae iam extabat - et subsidium generibusscalaribus (integris, mobilibus, serialibus, et booleanis) in pronuntiatione generum parametrorum et reditus datum.[66]
PHP 8 edita est die 26 Novembris 2020, et nunc est secunda maxime usitata forma PHP. Quia est forma maior, mutata rumpentia de formis prioribus habet.[67][68] Inter nova et insignia sunt haec:
Compilatro in praesens subsidium datur.[69] Quod opera valde levare potest in quibusdam usibus,[70][71] sed dixit molitor (tunc pro PHP) Nicetas Popov plerisque sitibus interretialibus minus levaturum opera quam levavit ascensus ex PHP 5 in PHP 7.[72] Opinio est compilatrum valde levaturum potius opera mathematica quam usus communes interretiales.[72] Hoc compilatrum facultatem facit aliquantum programmatis ex C in PHP traicere ob opera in quibusdam usibus levata.[73]
In PHP 8 voxmatch illata est.[74] Haec rationem vocisswitch similem habet et brevior est in nonnullis usibus.[75] Eo quodmatch est vox, exitus eius variabili necti vel a functione reddi potest.[76]
Quaedam in PHP 8 mutata sunt ut alia, brevior, aut magis constans syntaxis in rebus diversis sineretur. Exempli gratia, operatrumnullsafe est similis operatrinull coalescing??, sed ad methodum vocandum usurpatur.[78] Hoc programma errorem non iaciet sigetBirthday() nullum reddat:
Alia mutata minora sunt subsidium datum ut::class obiectis adhibeatur tamquamget_class();[67] captiones non concipientes in molibus "tempta-cape"; syntaxis paulum immutata ut magis secum constaret; subsidium argumentis nominatis; subsidium commatibus finalibus in catenis parametrorum, quod magis concors est cum subsidio commatibus finalibus in ordinibus et in aliis contextibus.[68]
Interfacies diverse accommodatae sunt, ut subsidium obiectisDateTime ex interfaciebus creandis datum, et addita interfaciesStringable ad genera summonenda utilis.[67]
Annotationes generum in ipso programmate fontano PHP, lingua C scripto, additae sunt, quibus functiones methodique interni "scientiam integram generum in reflectione" haberent.[82]
PHP 8.1 edita est die 25 Novembris, 2021.[83] Subsidium datum est utgenera enumerarentur, proprietatesreadonly esse nuntiarentur (quod mutare proprietatem post initum impedit), et ordines clavibus serialibus expedirentur. Novogenerenever significari potest functionem non reddere.[84]
PHP 8.2 edita est die 8 Decembris, 2022.[85] Novae sunt classesreadonly (quarum exemplorum proprietates sunt tacitereadonly), genera informa normali disiunctiva, et auctumrandom,generatrum numerorum pseudofortuitorum cumAPI ad res directa,[86] facultas parametrorum impatientum abolendorum, permultaeque aliae virtutes.
Debilitatumregister_globals nisi requisitum esset, ne data per rete recepta directe in spatium nominaleglobale insererentur. Sic rimae in securitate applicationum clausae.[89]
Levata opera variabilibus compilatriis illatis in Ingenium Zendianum reformatum.[97] Addita interfacies constansPHP Data Objects (PDO) qua repositoria datorum adirentur.[99]
Voces scalares constantes,functiones variadicae, expeditio argumentorum, novum operatrum exponendi, aucta affirmatiouse ad functiones et constantia, novum emendatrumphpdbg forma moduli SAPI, alia minora emendata.[107]
6.x
Non edita
-
Forma derelicta linguae PHP qua subsidium Unicodici addendum erat.[108][109]
Characteres generici 2.0,[138] praeoneratio,[139] operatrum nexuumnull-coalescing,[140] emendatumopenssl_random_pseudo_bytes,[141] relationes infirmae,[80]interfacies ad functiones alienas,[142] auctumhash semper praesto,[143] regestrumhash tesserarum,[144] dispertitio serierum multis octetis,[145] repercussus relationum,[146] resolutumext/wddx,[147] nova ratio rerum ad voluntatem serie numerandarum.[148]
Compilatrum in praesens,[69] ordines ab indice negativo ordinati,[150] semantica strictior saniorque (validatio methodorum characterum abstractorum)[151] sanior serierum cum numeris comparatio,[152] saniores series numerales,[153]TypeError in vitiosis operatris arithmeticis seu per bitos,[154] in novas classes transpositi quidam errores ingenii,[155] errores de generibus constantes in functionibus internis,[156] error fatalis si subscriptiones methodorum sunt discordes,[157] conversio mobilium in series locis soluta,[158] mutata minora in syntaxi,[159] attributa,[160][161][162][163] argumenta nominata,[164] voxmatch,[165] promotio proprietatum in constructricibus,[166] genera coniunctiva,[167] genusmixed,[168] genusstatic return,[169] operatrumnullsafe,[78] captiones non concipientes,[170] voxthrow,[77] auctumJSON semper praesto.[171]
Classes immutabiles,[183] generanull,false,true sui iuris facti,[184][185] conversio notarum litterarum locis soluta,[186] genera formalia normalia disiunctiva,[187] constantia in characteribus.[188]
Adhibuit Sodalitas Molientium PHP a die 28 Iunii 2011 regulam temporibus novarum formarum linguae PHP edendarum.[52] In hoc systemate forma una, aut plures, omni mense edenda est; omni anno uni formae minori novas virtutes inducere licet. Omni formae subsidium per duos annos de mendis et de securitate, per unum aut plures de securitate tantum; ergo summa processus omnis formae minoris tres annos consumit, in quibus nulla virtus nova nisi minima et se ipsa contenta induci debet.
Animal tutelare rerum linguae PHP estelePHPant (per iocum abelephant "elephas"),elephas caeruleus in latere signum PHP ferens. Illum excogitavit Vincens Pontier[197] anno 1998.[198] "Litterae (scilicet PHP) formam elephanti, si a latere aspicerentur, efficiebant."[199] Color quandoque alius est inbestiolis mollibus ad imaginemelePHPant factis.[200]
Multae et variae formae huius animalis per annos factae sunt. Eas solas sodalitas ut sinceras accipit, quae ad descriptionem originalem Vincentis Pontier factae sint.[201] Hae sunt collectiles, et quaedam sunt rarissimae.[202]
<!DOCTYPE html><html><head><title>Salutatio mundi in PHP</title></head><body><p><?='Salve, Munde!'?></p></body></html>
Tamen, quia nihil necesse est programma PHP in HTML contineri, simplicior salutatio mundi sic scribi potest, omissa ligula terminativa?> ut mos est in fasciculis quorum programma est mera PHP.[203]
<?phpecho'Salve, Munde!';
Interpres PHP ea sola exsequitur, quae intralimitationes sint. Extra limitationes seponuntur quae non lingua PHP scripta sint, ut programmaJavaScript vel annotatio HTML,[204] ne ea PHP tractet. Etiam hic textus est subiectusstructuris rectricibus programmate PHP descriptis. Limitationes usitatissimae sunt<?php ad partes in PHP inducendas et?> ad terminandas. Brevior quoque exstat scriptio<?; obstat quidem quominus fasciculi scriptorum portentur, cum subsidium debilitari in constitutione singulari linguae possit, ideoque dissuadetur.[205][206] Contra autem ligulamecho breviorem<?= nulla sententia est data.[207] Haec syntaxis usque ad PHP 5.4.0 valebat solum si constitutioshort_open_tag habilitata erat, sed a forma PHP 5.4.0 praesto semper est.[208][209][205] Igitur simplicissimumprogramma ad mundi salutationem lingua PHP scribitur:
<?='Salve, Munde!';
Prima vero forma limitationis, scilicet<?php et?>, si in fasciculoXHTML aut aliorum generumXML adhibetur, mandatum recte scriptum in XML format.[210] Ergo ipsum programma commixtum e PHP aliisque annotationibus in fasciculo, quem moderatrum possidet, est XML recte scriptum.
Variabilibus praefigitursigillum$, nec praescribendus estgenus. PHP 5 induxitpronuntiationem generum, qua functio parametra sua certae classis obiecta, ordines, interfacies, autfunctiones revocabiles esse cogeret. Tamen ante PHP 7 genera scalaria, e.g. integros vel series, pronuntiare non licebat.[66]
In exemplo infra scripto demonstratur quomodo variabilia in PHP pronuntientur ineantque.
<?php$nomen='Aemilius';// variabile genere series pronuntiatur initque$anni=18;// variabile genere integer pronuntiatur initque$altitudo=5.3;// variabile genere duplex pronuntiatur initqueecho$nomen.' est '.$altitudo."m altus\n";// variabilia cum serie conserunturecho"$nomen$anni annos natus est.";// series variabilibus interpolatur?>
Notam litterarum non sentiunt nomina functionum et classium, sentiunt tamen nomina variabilium. Seriesheredoc aut virgulis duplis inclusae ("") valore variabilis interpolari possunt.[211]Versus novi in modumlitterarum vacuarum tractantur, sicut in aliaelinguae formae liberae. Affirmationes virgula punctata separantur.[212] In syntaxi sunt tres formaeanimadversionis:/* */ animadversiones includunt, quae aut molem efficiunt aut versui iniciuntur;// aut# animadversionibus unum versum explentibus adhibentur.[213] Affirmatioecho est una ex pluribus facultatibus quibus lingua PHP textum reddere quit.
Verbis cardinalibus formaque syntaxis PHP est lingua similis C. Condicionesif, laquei reditusque functionumfor etwhile sunt similes ac in C, C++, C#, Java et Perl.
Linguae PHPgenera infirma sunt.Integrisignati in aliis suggestibus aliis tractibus tenentur forma 32, 64, vel 128 bitorum, itidem ut ingenere longo linguae C. In certis rebus integri non signati signum accipiunt, quod est multis aliis linguis computatralibus alienum.[214] Variabilia integra in nectendo notis decimalibus (seu positiva seu negativa),octalibus,sedecimalibus, autbinariis scribere licet.
Etiamnumeris puncto mobili scriptis tractus secundum suggestum variat. Hi notantur aut recte cum puncto mobili aut duobus modisnotationis scientificae.[215] PHP genusBooleanum habet proprium et simile generibus Booleanis, quae sunt propriaJava etC++. Regula in genere Booleano convertendo est zerum falsum, omnia alia verum significare, sicut inPerl et C++.[215]
Genus datorum, quod nullum dicitur, variabile notat, cui nullus valor est; nullum valorem esse significant litteraeNULL.[215]
Variabilia, quae genere "opes" appellantur, ad opes externas referunt. Hae solent a functionibus alicuius additri creari, et solum ab eiusdem additri functionibus tractari posse; exempla opum sunt fasciculi, imagines, et repositoria datorum.[215]
Ordines elementa omnis generis in lingua PHP tractabilis continere possunt, e.g. opes, obiecta, necnon alios ordines. Consecutio elementorum in catenis valorum et inhash, quae et claves et valores continent, servatur; hi etiam commisceri possunt.[215]Series quoque subsidium habent, et cum virgulis simplicibus aut duplis,nowdoc autheredoc adhiberi possunt.[216]
Bibliotheca PHP Normalis quaestiones communes solvere nititur classesque et interfacies ad data faciles praestat.[217]
Functiones multiplices nucleo linguae PHP definiuntur, multaeque in variis additris assunt. Hae omnes in interreti bene conscriptae sunt.[218][219] Bibliotheca autem inaedificata valde diversas rationes functionum nominandarum aliaque inconstantia connexa habet, ut sectio dehistoria supra dicit.
Evolutori ipsi functiones novas fingere licet:
functionannosNatus(int$natusAnno):string{// Annos vitae computa anno nativitatis de anno, qui nunc est, subtrahendo.$annosNatus=date('Y')-$natusAnno;// Redde annos vitae in serie descriptiva.return$annosNatus.($annosNatus==1?' annum':' annos');}echo'Nunc '.annosNatus(1995).' natus sum.';
Anno 2025 programma, quod supra in exemplum adhibetur, reddit sententiam "Nunc 30 annos natus sum."
Ad functionem in PHP referre potest series eius nomen continens, viceindicatoris functionis. Ita functiones vulgares linguae munererevocabilium fungi aut intratabulam functionum poni possunt.[220] Functionem definire sine ulloprototypo semper usori licet.[219][220] Etiam intra molem programmatis definiri potest, utin operando cernatur an definienda sit. Est quoque quaedam functiofunction_exists, quae cernit an ulla functio cum nomine quolibet definita sit. Vocationem functionis per parentheses fieri necesse est, exceptis functionibusconstructricibus, quae nullum argumentum habeant et operatro PHP proprionew vocentur; ad has optio est an parentheses scribantur.
A PHP 4.0.1create_function(), leve tegimen circumeval(), functiones vulgares PHP in exsecutione programmatis creare sinebat, sed destitutum est in PHP 7.2 et ablatum in PHP 8.0[221] ut inferretur syntaxis adfunctiones sine nomine aut "clausuras",[222] quae variabilia concipere ex spatio circumdato possunt; haec additae sunt in PHP 5.3. Scriptio brevis sagittarum addita est in PHP 7.4:[223]
In exemplo supra scripto, functiogetAdder() argumento tradito$x utitur ut clausuram faciat, quae alterum argumentum$y accipit, redditque vocatori clausuram factam. Talis functio cum obiectum primae classis sit, in variabili deponi, tradi ut alterius functionisparametrum sit, etc. potest.[224]
In PHP subsidium datur ut genera in parametris functionum pronuntientur, quod in linguis generum mobilium fieri non solet. Hoc subsidium in classibus et interfaciebus a PHP 5.0, in ordinibus a PHP 5.1, in "vocabilibus" a PHP 5.4, et in generibus scalaribus (numeris integris, numeris mobilibus, seriebus et booleanis) a PHP 7.0 datum est.[66] Datum quoque est in PHP 7.0 ut genera reditus functionis pronuntientur; quod fit nomine generis post catenam parametrorum posito et ab eo per bipunctum discreto.[65] Exempli gratia, functiogetAdder prioris exempli generibus sic annotari in PHP 7 potest:
functiongetAdder(int$x):Closure{returnfn(int$y):int=>$x+$y;}$adder=getAdder(8);echo$adder(2);// "10" scribitecho$adder(null);// Exceptionem iacit quia genus mendosum traditum est$adder=getAdder([]);// Hoc quoque exceptionem iaceret
Pronuntiatio generum scalarium, nisi aliud postulatur, more generum debilium fit. Si igitur genus parametri sitint, PHP non solum integros sed etiam series convertibiles, numeros mobiles, aut Booleana ad functionem tradere sinet et convertet.[66] Tamen PHP 7 alterum modum habet, qui "genera stricta" appellatur, et si usurpatus est, tales conversiones in vocatione functionum et reditibus intra fasciculum vetat.[66]
Programmaturae ad res directae rudimenta in PHP 3 addita et PHP 4 exculta sunt;[18] quod abstractiorem fieri linguam sivit evolutoribusque, qui nova creare temptarent, favit. In PHP 5 modus obiectorum tractandorum funditus renovatus est ut numerus virtutum augeretur et programma melius operaretur.[225] Nam in formis prioribus linguae PHP, obiecta ita tractabantur utgenera valorum.[225] Incommoda vero fuit necessitudo ut variabilia "referentia" linguae PHP crebro adhiberentur, si non transcribendum sed immutandum erat obiectum ad programma traditum. In methodo novo ad obiectumansa, non valor, refert.
Si evolutor obiectum verbo reservatoclone transcripserit, Ingenium Zendianum inspiciet an definitus sit methodus__clone(). Si non definitus est, ingenium methodum__clone() praestitutum, qui proprietates obiecti transcribat, vocabit; si autem definitus est__clone(), hic proprietates obiecto creando imponere debebit. Commoditatis gratia, ingenium functionem praebebit, quae proprietates obiecti traditi transferat, ut evolutori praestet effigiem proprietatum obiecti traditi, cui eas solas rescindat quae mutandae sint.[227]
Visibilitatem proprietatum et methodorum definiuntverba cardinaliapublic ("publicum"),private ("privatum"), etprotected ("protectum"). Si nihil aliud nisivar scriptum est, omnia sunt publica, cumvar sit synonymumpublic. Ad omnia quae publica definiantur, accessus ubique datur. Ad protecta accessus licet solum inclassibus hereditariis (et in classe, quae rem definit). Privata inspicere nihil potest nisi ex classe, quae rem definit.[228] Obiecta eiusdem generis alterum ad alterius allegata accedere possunt, etsi non sunt idem exemplum.
<?phpabstractclassUser{protectedstring$nomen;publicfunction__construct(string$nomen){// Fac primam litteram maiusculam ceterasque minusculas$this->nomen=ucfirst(strtolower($nomen));}publicfunctionsaluta():string{return"Salve! Nomen meum est ".$this->nomen;}abstractpublicfunctionnegotium():string;}classDiscipulusextendsUser{publicfunction__construct(string$nomen,privatestring$cursus){parent::__construct($nomen);}publicfunctionnegotium():string{return$this->cursus."disco ";}}classMagisterextendsUser{publicfunction__construct(string$nomen,privatearray$cursumDoceo){parent::__construct($nomen);}publicfunctionnegotium():string{returnimplode(", ",$this->cursumDoceo)."doceo ";}}$discipuli=[newDiscipulus("Aemilia","artem computatralem"),newDiscipulus("Brutus","artem computatralem"),newDiscipulus("Claudius","negotia"),];$magistri=[newMagister("Domitius",["artem computatralem","securitatem informaticam"]),newMagister("Epistropha",["artem computatralem","programmaturam graphicam in tribus dimensionibus"]),newMagister("Festa",["mercaturam interretialem","negotia","commercium electronicum"]),];foreach([$discipuli,$magistri]as$users){echo$users[0]::class."s:\n";array_walk($users,function(User$user){echo"{$user->saluta()},{$user->negotium()}\n";});}
Id programma haec reddit:
Discipuli:Salve! Nomen meum est Aemilia, artem computatralem discoSalve! Nomen meum est Brutus, artem computatralem discoSalve! Nomen meum est Claudius, negotia discoMagistri:Salve! Nomen meum est Domitius, artem computatralem, securitatem informaticam doceoSalve! Nomen meum est Epistropha, artem computatralem, programmaturam graphicam in tribus dimensionibus doceoSalve! Nomen meum est Festa, mercaturam interretialem, negotia, commercium electronicum doceo
Solum et usitatissimum linguae PHP mandatum integrum est primum mandatum, nec ullum nomen nisi simpliciter PHP habet. Tamen, cum abIngenio Zendiano moveatur, quandoque vulgariter PHP Zendiana appellatur. Ingenium hocprogramma fontanum in lingua PHPcompilat ratione interna quam exsequi possit,interpretis opera fungens.[229][230] Cum PHP nullam designationem formalem habeat, PHP Zendiana est "mandatum referendum," cuiussemantica totius linguae semanticam definit. Quam cum multiplicem et subtilissimam illud Ingenium reddat, difficile est, ut aemula mandata penitus consociabilia fiant.
Inhabile est, quod PHP rogatibus singulis scripta exsequitur et interpretis officio fungitur, itaque plures res excogitatae sunt quae iuvent. Ut programma fontanum celerius exsequatur, nec toties compilare debeat, quoties quis ad paginam interretialem accesserit, scripta PHP in lingua interna ingenii explicari possuntacervonumerorum operationum, ubi acervatur forma compilata scripti PHP (quae ex numeris operationum constat) inmemoria communi ne prodige ingeniumpartiri etcompilare debeat, quoties scriptum operetur. Acervus numerorum operationum,Zend Opcache, in PHP a forma 5.5 inaedificatus est.[231] Alius acervus numerorum operationum, qui passim usurpatur, estAlternative PHP Cache (APC), qui sub forma additriPECL praebetur.[232]
Quamquam PHP Zendiana maxime usitatur, nonnulla alia mandata evoluta sunt. Quaedam suntcompilatra autcompilatro in praesens subsidium dant, quo levius operantur quam PHP Zendiana sed non quidem omnino consociabilia sunt linguae PHP. Haec sunt mandata praeter Zendianum:
HHVM (HipHop Virtual Machine) – in Facebook evoluta et in fontem apertam exposita; programma PHP convertebat in notas octetales superiores (vulgariter diciturlingua media), quem tumcompilatrum in praesens in programma mechanicum x86-64 mobiliter in operando vertebat. Sic opera sexies melius fieri poterant.[233] Tamen Zendiana a forma 7.2 superavit HHVM,[234] et ultima forma HHVM, quae subsidium PHP rite praebuit, erat HHVM 3.24.[235]
HipHop – in Facebook evoluta et in fontem apertam exposita. Scripta PHP in programmaC++ vertebat et deinde compilabat, quod onus moderatri 50 centesimis levare poterat. Ineunte anno 2013 Facebook eam destituit et HHVM instituit ob causas multas, inter alia quia difficilius explicabatur nec PHP toti subsidium praebebat; deficiebant enim constructacreate_function() eteval() et alia.[236]
Parrot – machina virtualis ita structa ut linguis mobilibus habiliter operaretur; internuntius, nomine Pipp, programma PHP inscriptionem mediam Parrot vertit, quam tum in notas octetales Parrot vertit et exsequitur machina virtualis.
PeachPie – compilatrum aevi secundi in notas octetalesLinguae Mediae Communis .NET, in suggestuRoslyn structum; successor Phalangeri, quocum nonnullas partes communes habet
Phalanger – PHP in codicem octetalem Linguae Mediae Communis .Net; antecessor PeachPie
Producta, quae ab hac programmatura derivata sint, appellare "PHP" non licebit, nec "PHP" in eorum nomine esse, nisi venia scripta prior accepta sit a group@php.net. Programmaturam cum PHP operari significabis dicendo "Foo ad PHP", nec "Foo PHP" nec "phpfoo".
Illa lege de vocabulo "PHP" Licentia PHP est contrariaLicentiae Publicae Universae (GPL). Contraria quoque est Licentia Zendiana ob legem de praeconiis primaeLicentiae BSD similem.[238]
PHP variasbibliothecas liberas aut apertas in fonte edit aut in structis binariis quae inde fiunt. PHP est talis lingua, quae funditusInterrete sentiat, instructis modulis qui moderatraFile Transfer Protocol (FTP) et multa moderatra repositoria, inter aliaPostgreSQL,MySQL,Microsoft SQL Server etSQLite (quod continetur), moderatraLDAP, et alia adeant. Permultae functiones quae in structis vulgaribus PHP praebentur, ut familiastdio, notae sunt programmatoribus linguae C.[239]
Evolutoresadditris inC potestates linguae PHP addere sinuntur, quae aut stabiliter compilari in notas PHP aut mobiliter in operando ammoveri possunt. Multa additra scripta sunt in subsidiumWindows API, tractationis rerum insystematibus internisUnici similes, serierum octetorum (Unicodicis),cURL, et quarundam usitatarumformarum compressarum. Aliae potestates per additra praebitae sunt compositio cumInternet Relay Chat (IRC), generatio mobilis imaginum et rerum inAdobe Flash, "Obiecta Data PHP" (PHP Data Objects, PDO, quod est stratum abstractum quo programma repositoria datorum adeat),[240][241][242][243][244][245][246] etiamvox facticia. Nonnullae potestates propriae linguae PHP - ut eae, quae series et ordines tractant - per additra quoque dantur.[247]Bibliotheca Socialis Additrorum PHP (PHP Extension Community Library, PECL) est repositorium additrorum linguae PHP.[248]
Sunt incepta, e.g.Zephir, quibus additra PHP lingua superiore conscribi, deinde in additra propria PHP compilari possint. Sic additra simplicius evolvuntur et minore tempore scribuntur et tentantur quam si recte in C scriberentur.[249]
The PHP Foundation "Molitores nucleares" conducit, qui in repositorio nucleari linguae laborent. Romanus Pronskiy, unus e rectoribus, molitoribus "mercedem in mercatu solitam" eos destinare velle dicit.[255]
Pleraeque sententiae de The PHP Foundation bonae fuerunt: melius subsidium linguae praebere, gratiae publicae cadenti subvenisse.[256][257] Reprehensa est eo, quod in formis minoribus mutationes rumpentes fecit, ut in PHP 8.2, si membra classis cum spatio prisco inibant, menda in depretiatione exstabant;[258] taliaWordPress et alia incepta fontium apertarum affecerunt.[259]
Duobus modis in moderatro interretiali subsidium linguae PHP addi potest: aut modulo proprio moderatri aut exsecutabili CGI. PHP interfaciem rectam per modulum habet, cui nomen estserver application programming interface (SAPI) cuique subsidium multis moderatris, e.g.Apache HTTP Server,Microsoft IIS etiPlanet Web Server, datur. Alia moderatra, e.g. OmniHTTPd, subsidiumInternet Server Application Programming Interface (ISAPI), id est interfaciei moderatrorum societatisMicrosoft, praebent. Si autem moduli subsidium in moderatro deest, PHP semper operamInterfaciei Portae Communis (CGI) autFastCGI parare potest; si hoc fit, moderatrum ita constituitur ut omnes petitiones fasciculorum PHP per illius exsecutabile CGI tractet.[261]
PHP-FPM (FastCGI Process Manager) est alterum mandatum, quod cum distributione publica ipsius linguae a forma 5.3.3 colligatur.[262] Virtutes aliquot habet praeter prius mandatum FastCGI, praecipue moderatris onustioribus utiles.[263]
Ubi PHP ex iusso scripta programmantur, necesse est exsecutabile adinterfaciem per iussa (CLI) adhibere. PHP subsidiumSAPI ad CLI a PHP 4.3.0 habet.[264] Haec SAPI praecipue ad applicationesper crustam spectat. Multa similia sed haud pauca dissimilia sunt inter SAPI ad CLI et alias SAPI.[265]
PHP etiam ad applicationem scribendam per interfaciem ad usorem graphicam (GUI) usurpari potest perPHP Desktop. . GitHub aut additrum iam destitutumPHP-GTK.
Multi modi constituendi subsidium habent, qui et nucleum linguae et additra immutant.[268][269] Fasciculus constitutivusphp.ini in locis diversis secundum usum quaeritur,[270] et in partes scinditur.[271] Quaedam etiam una cum moderatro constitui possunt.[272]
Structura LAMP insuevit in re interretiali applicationum explicandarum gratia.[276] PHP litteramP in eo nomine solet agere, ceterasLinuce,Apache etMySQL ferentibus, quamquamP potest quoquePythonem,Perl, compositionem duarum aut omnes tres significare. Aliae sarcinaeWAMP etMAMP adWindows etmacOS aptatae sunt, quae litterae W et M significant. Cum et PHP et Apache in infima constitutione macOS includantur, sarcinarum usores faciliorem modum constituendi et renovandi volunt.
Certis usibus, in quibus scientia magis provecta opus est, PHP praebet modum bene definitum atque conscriptum quo additra propria inC autC++ scribantur.[277][278][279][280][281][282][283] Additra et linguae ipsibibliothecas addunt et velocitatem exsequendi augent, si hoc est magni momenti etlingua vere compilata usui erit.[284][285] Item PHP modos bene definitos praestat, quibus in aliis programmaturis contineatur. Sic altera programmatura lingua PHPscripta intra se efficere potest, et interfaciem cum suastructura datorum solidam habebit.[286]
Die 21 Novembris 2024, cum PHP 8.4 edita esset, in 75.4 centesimis situum, cuius linga decerni potuit, lingua programmandi in moderatro erat; forma PHP 7 maxime usurpabatur, cum 49.1 centesimae situum, qui PHP utebantur, eam haberent, 37.9 centesimae PHP 8, 12.9% centesimae PHP 5, et 0.1 centesimae PHP 4.[9]
Anno 2019, 11 centesimae omnium occasionum incurrendi, quae inRepositorio Gentili Occasionum Incurrendi conscribebantur, in PHP pendebantur;[297] circa 30 centesimae occasionum ab anno 1996 in illo repositorio conscriptarum in PHP pependerunt. Vitia artis, quae securitatem afficiant, in lingua ipsa et in bibliothecis intimis raro eveniunt (22 anno 2009, circa 1 centesimam summae, cum PHP circa 20 centesimae programmatum conscriptorum uterentur).[298] Quaedam linguae, quia errare est proprium evolutorum,dispunctionem vitiorum includunt, quae sponteinitus non probatos, qui multa mala inducunt, deprendant. Et in PHP tales virtutes proponebantur, sed postea haec consilia reiecta aut relicta sunt.[299][300][301]
Suhosin[302] et Snuffleupagus[303], incepta externorum, tollere aut mutare optabant quaecumque periculosa in lingua inveniebantur.
Formae veteres PHP parametra constitutionis et horum valores praestitutos habebat, quae securitati quarundam applicationum inutilia fuerunt. Quorum notissima fuerunt constitutionesmagic_quotes_gpc etregister_globals[304]; haec omnia parametra URL in variabilia PHP transformabatur, quod hosti facultatem cuilibet variabili universali, quod non inisset, valoris figendi et exsecutionis scripti turbandae faciebat. Subsidium quidem istarum constitutionum destitutum est in PHP 5.3.0, et sublatum in PHP 5.4.0.[305]
Alia occasio incursionis in constitionibus operariis apparet, si exsecutio PHP non debilitata est (e.g. regula constitutivaengine)[306] in indice, ubi fasciculi remissi sunt. Habilitata enim potest programma malevolum in fasciculis remissis contentum exsequi.[307][308][309] Optimum est igitur, si index imaginum aut extra radicem documenti, qui moderatro praestatur, situs est, et per scriptum medium moderatur, aut exsecutio PHP debilitatur indici, qui fasciculos remissos tenet.
Lectio quoque mobilis additrorum PHP (per regulam constitutivamenable_dl)[310] in moderatrocommuni securitati inutilis videtur.[311][312]
Itemconversio generum implicita, quae valores inaequales aequat, quandoque invito evolutore, mala trahere potest. Exempli gratia, comparatio'0e1234' == '0' exitumtrue ("vera") reddit, quod series, quae ut numeri legi possunt, in numeros convertuntur; hoc igitur casu, valor prior comparationis tractatur utnotatio scientifica valens (0×101234), id est nullum. Tales errores occasiones scelerum per confirmationem dolosam inSimple Machines Forum,[313]Typo3[314] etphpBB[315] faciebant, cumhash tesseraeMD5 compararentur. Consilium probatum esthash_equals() (contraincursiones temporales),strcmp aut operatro identitatis (===) - nam'0e1234' === '0' redditfalse ("falsa") - uti.Formula:Citation needed
PHP continet functionesrand()[318] etmt_rand()[319] quigeneratrum numerorum pseudo-fortuitorum utuntur et cryptographice insecurae sunt. In forma 8.1 contenta est functiorandom_int(), quae fonte fortis cryptographice securo a systemate allato utitur.[320]
Collegium evolutorum linguae PHP rite menda corrigit per duos annos postquam formam minorem edidit, deinde per duos annos securitatem tantum corrigit.[321] In posterum tempus, editumvita defunctum habetur nec subsidium rite obtinet.
Subsidium Extensum praeter illam finemZend et aliae societates mercatoriae praestant[322][323]