Starší komentáře ke článku: Další novinky v PHP5
Zpět na článek | Úvodní stránka Interval.cz
Datum vložení: 27.3.2003 7:15:29
kdy bude k vyjde PHP 5? (zhruba)
Datum vložení: 27.3.2003 15:10:04
uz vyslo
tahej zde: <a href='http://snaps.php.net/' target='_blank'>http://snaps.php.net/</a>
(a nezapomen reportovat bugy... ;-)
Datum vložení: 27.3.2003 8:22:48
Pro zápis indexu pole se používají složené závorky, např. tedy takto:
$retezec{0} = "a";
---------------
$retezec = "Ahoj lidi!";
echo "Text: $retezec, čtvrtý znak: {$retezec{3}}, desátý znak: {$retezec{9}}";
Tak je to pro index pole nebo znaky? Jsem zmaten...
Datum vložení: 27.3.2003 9:26:18
Nevim, jen predpokladam, ze slozene zavorky budou vyhrazeny retezcum, hranate polim - cili $retezec{0}="a" by IMO vytvorit retezec "a"... kdyby chteli index pole znacit hranatymi zavorkami, tak by byli jeste vetsi silenci nez predpokladam ;-))
Datum vložení: 27.3.2003 9:29:56
samozrejme "... kdyby chteli index pole znacit SLOZENYMI zavorkami..."
sorry, kdyz jsem to psal, tak jsem uz myslel na neco jineho - proste preprocessing :-)
Datum vložení: 27.3.2003 11:56:42
Omlouvám se za špatné vyjádření. Samozřejmě jsou složené závorky určeny pro zápis indexů *znaků* v řetězci, zápis indexů pole zůstává nedotčen. Pokusím se vyjednat opravu v textu článku, ať to nemate další čtenáře.
Datum vložení: 27.3.2003 15:34:47
no je hezky ze tam sou vyjimky ale jaksy sou podle me takovy no nevim nedodelany hlavne kdyz si to vsechno beztak musime obslouzit samy prijde mi to takovy divny kdyz na necem zacnu pracovat tak to dokoncim to je podle me nedodelana prace ale budiz mame vyjimky :)
k ty mnohonasobny dedicnosti mohl by to autor trochu vic popsat jaksy jsem z toho nepochopil ani ň :)
hlavne jsem nepochopil tuhle cast "extends Braza:Priklady::Zakladni implements MojeRozhrani "
neivm co je co za extends vypada to ze se tam volaji jednotlive tridy ale nechapu proc sou mezi nimy dvojtecky asi se jedna o standart opravdu nevim :) a potom nevim proc jsou mezi "Priklady" a "Zakladni" dve dvojtecky v tu chvili mi to jaksy zacalo unikat a taky jasky nechapu to interface a potom samozrejme implements chtelo by to priste podle me rozepsat je mi jasne ze by si tohle meli spis cist primo profici(coz ja su jenom tkaovej polovicni :) ) ale beztak melo by to bejt lip vysvetleny
Datum vložení: 27.3.2003 16:02:47
Já jsem zase tak úplně nepochopil váš příspěvek ;-), nicméně se budu snažit odpovědět.
Co se výjimek týče, jediné, co nedostáváte pod nos oproti jiným programovacím jazykům je hierarchie tříd výjimek a jejich vytváření v běžných funkcích. Obsloužit je musíte vždycky a všude sám - kdo jiný by to za vás měl dělat?
K vícenásobné dědičnosti snad jen to, že výše uvedený příklad zároveň demonstruje použití jmenných prostorů (viz článek). Jednoduché dvojtečky jsou o ničem a slouží jen pro programátory, aby mohli "roztřídit" své knihovny... takže ve jmenném prostoru Braza:Priklady je zřejmě třída Zakladni, od níž novou třídu odvozuji. Zároveň bude nová třída implementovat rozhraní MojeRozhrani. Rozhraní obecně je něco jako abstraktní třída, jež obsahuje pouze metody (resp. tedy jejich deklarace). Používá se pro zajištění určitého rozhraní mezi třídami.
Datum vložení: 27.3.2003 16:33:44
dekuji :)
k tem vyjimkam sem psal hlouposti toho si nevsimejte :)
jinak ted jste mi vysvetlil ale jenom klasickou dedicnost ale porad nechapu mnohonasobnou jak se to ma za extends zapisovat protoze z toho co jste mi popsal jsem pochopil ze sem si akorat zavolal "JEDNU" tridu ze jmeneho prostoru
Datum vložení: 28.3.2003 9:36:27
Ta vicenasobna je zajistena tim 'implements', za kterym jsou uvedeny nazvy interfaceu, ktere ma dana trida implementovat... princip stejny jako v Jave...
Datum vložení: 27.3.2003 16:38:56
a jeste jedna vec stejne to tam nejak s tim jmenym prostorem nechapu
protoze kdyz to vezmu jak to tam je tak usuzuji ze jmeny prostor se jmenuje Braza a tudiz dalsi by mel nasledovat nazev tridy cili Priklady a to dalsi zatim me osobne rika ze volam jenom metodu Zakladni protoze je za "::" jak se to dela ve statickem volani metod nebo vlastnosti ale pokud vim tak ve dedicnosti moho volat pouze tridu a ne metodu kterou jeste navic staticky volam tohle me prijde takovy trochu nahlavu padly a nebo je ten priklad v clanku nejak spatne napsanej :)
Datum vložení: 31.3.2003 18:38:57
Exception - vyjimka = v programu se vyskytne chyba(runtime), ktera zasadne narusi bez dane aplikace. Napr. neni pamet, chyba na serveru atd... Kdyz se to spravne pouziva resp. umi pouzit, tak je to opravdu perfektni system.
Datum vložení: 27.3.2003 18:28:43
Sem vepište svůj příspěvek. a taky o udělám.
Nevím, ale vícenásobná dědičnost znamená, že objekt dědí od více jak jedné třídy. To co nabízí PHP5 je pouze základní dědičnost (která je tedy více doporučována, neboť v C/C++ dělá mnoha programátorům potíže) a může se využít několikanásobné implementace rozhraní. Což znamená, že implementaci "nejen" funkcí, ale i vlastností si musíte napsat v nové třídě.
To jenom tak naokraj, malé rýpnutí. Rejpho
Datum vložení: 27.3.2003 22:40:17
Sem vepište svůj příspěvek. A ja to taky udelam. Vicenasobna dedicnost dela v C++ (ne v _proceduralnim_ C) problemy, protoze existuji dva druhy - virtualni a normalni. A samotny problem nastava v okamziku, kdy programator distibuuje svuj kod jinym programatorum, kteri ale nemaji zadny mechanismus, kterym by zjistili, jakyze typ vycenasobne dedicnosti byl pouzit. Takze jediny seriozne pouzitelny typ vicenasobne dedicnosti (i kdyz ne uplne ciste) je vicenasobna implementace rozhrani, opr. vnitrni tridy+callback. Rejpho.
Datum vložení: 31.3.2003 8:19:05
Sem vepište svůj příspěvek. I ja to udelam.
Pokud povazujes za chybu vicenasobne dedicnosti to, ze dostanes kod bez dokumentace - co si o tom myslet. Vicenasobna dedicnost je technologie jako kazda jina, da se pouzivat dobre a bez problemu anebo se s ni da udelat gulas. Osobne me vicenasobna dedicnost dost chybi v jazycich co ji nemaj, sem pak nucenej jeden a ten samej kod duplikovat pokud chci rozsirit celou radu zakladnich trid [z frameworku] o jedny a ty samy funkce. S vicenasobnou dedicnosti bych akorat pridedil dalsi tridu, bez ni se upisu.
Datum vložení: 2.4.2003 11:15:58
NO v tom pripade by ses ale mozna mel zamyslet nad tim, jestli mas spravne provedeny objektovy navrh. Ja si myslim, ze pokud se udela spravna objektova analyza, neni treba v 95% pripadu uziti vicenasobnou dedicnost pouzivat
Datum vložení: 14.8.2008 23:13:49
Ano ale zabiji to prenositelnost kodu, pro kazdy novy pripad pouziti kodu, je potreba delat novou analyzu, a psat objekty znova, misto toho aby se pouzilo rysu, a vysledna trida byla jejich kompozici, aniz bych se musel upsat. Kdo dela C++ pochopí.
Datum vložení: 28.3.2003 9:21:21
Budu moci pouzivat vice bloku catch, kdy interpret podle typu vznikle vyjimky vybere odpovidajici catch ?
Datum vložení: 31.3.2003 18:47:01
No samozrejme, ze to musi jit. Vsechny moderni OOP jazyky to umi. Kdyz aplikace hodi vyjimku, okamzite se prerusuje volani methody=funkce (jako return) a rizeni se preda vys. Pokud v nejakem tom bloku je block catch, ktery by "zachytil" danou vyjimky napr. NotEnoughtMemoryException - je vyjimka "zachycena" a odvolana, v ostatnich pripadech je rizeni opet predano vys a vys. V pripade, ze to dosahne nejvyssi urovne a uz neni kam vyjimku presmerovat, udela to chybu.
U dalsich jazyku je moznost dat za sebe vice bloku catch pro osetreni jednotlive vyjimky. <- to ale nevim, jak to bude v PHP5
Datum vložení: 31.3.2003 23:04:27
Chapu system predavani vyjimek, me zajimalo to naco ste neodpovedel a to retezeni bloku catch. Pokud to bude chybet, tak se jedna opet o nedodelane reseni.
Datum vložení: 28.3.2003 16:49:32
<I>Drobná změna se dotkne také práce s řetězci. Jedná se o příjemné vylepšení, které ovšem může mít dopad na kompatibilitu starých skriptů. V současné době se totiž pro přístup k jednotlivým znakům řetězce používá stejný zápis jako v případě polí, tj. uvedení indexu v hranatých závorkách:</I>
mno to zas neni pravda, tohle uz pomerne dlouhou dobu pouzivam na php4 a v soucasnosti to pouzivaji tak mozna prasatka (co nectou manual a s nejvetsi pravdepodobnosti i indexujou asoc. pole pomoci $pole[index] i kdyz index neni zadna konstanta..) i kdyzpravda zvyk z cecka je zvyk z cecka :))
Datum vložení: 31.3.2003 11:02:48
Mohl byste mi prosim nekdo vysvetlit, k cemu je vlastne dobre ono implementovani "interfacu"?
Diky
Datum vložení: 31.3.2003 18:49:15
To by bylo na dost dlouho a urcite bych na neco zapomel. Radsi si precti knihu o programovani v C++,Jave,C# a tam to pochopis.
Datum vložení: 31.3.2003 23:24:06
Implementace interfacu je technika , ktera umoznuje realizovat dedictnost, protoze dany objekt muze implmentovat libovolne intefacu, muze tak byt realizovana vicenasobna dedictnost. Vetsinou se to vysvetluje na TV a dalkovem ovladaci. TV je objekt a dalokovy ovladac interface pres, ktery uzivatel komunikuje s danym objektem v tomto pripade televizi. V tomto modelovem prikladu pak interface ovladac definuje metody jako prepni program, zvys hlasitost,pridej kontrast,uber jas apod. a objekt televize, ktery tento interface implementuje, realizuje jednotlive metody tj. na zvys hlasitost uoravi svoje vnitrni stavy tak,aby se z reproduktoru linul zvuk o par decibule vysi apod. vlastni implementace cili to jak to ten objekt udela je ciste na nem. Uzivatel tak dostane do ruky jeden ovladac, pres ktery ovlada TV a je mu jedno jestli je TV typu Tociba, Sonic, Panic :-) dulezite je , ze vsechny tuhle objekty impleentovali ten interface dalkove ovladania tak uzivateli poskytuji transparentni pruistup k jednotlivym vlastnostem. Staci takhle?
Datum vložení: 14.8.2008 23:15:43
cili standartizace pristupu k objeku(prace s nim), coz ale neni vycenasobna dedicnost
Datum vložení: 31.3.2003 18:34:50
No panove,
to je fakt sila. Jak na to tak koukam, tak ve snaze udelat OOP jazyk to pekne zmrsili. Rekl bych, ze z PHP se stava 'mutantt'. Asi ve snaze udelat co nejlepsi jazyk vzali vsechno, co jim vsechny jazyky dali a udelali to jako kočička s pejskem v té pohádce. ABSOLUTNE ZADNA INOVACE !!!
V jeden okamzik tam vidim C# kombinovany s Javou (treba finally). Pak VB ci pro priznivce Pascalu v zastoupeni 'function'. Namespace zase z C++ ci C#. U klicovych slov pro dedicnost si asi nenapadne zabrousili do (opet) Javy. __clone pripomina .NET Framework. __constructor zase snahu Microsoftu zabudovat .NET do C++. No sileny... kam to speje.
Proc konecne neodstranili treba $. Kdyz pisu nejake stranky v PHP, obcas me to az stve ... :(
Zajimalo by me, jestli udelaji taky nejakou inteligentni class-library jako je treba (MFC,.NET Framework, JRT atd...). Jestli ne, tak ...
Tesim se na vase reakce >:]
Datum vložení: 31.3.2003 21:34:00
trochu placas spis nesmysli snazi se ciste zabudovat "slusny" OOP do PHP ono totiz ani PHP neni delany puvodne pro OOP ale pro klasicky psani kodu
k tomu dolaru u promenych proc to ma Perl??? vadi to snad nekomu zminil ses o tim ne? nevadi mi to a je mi to prijemenjsi napomaha to lepsi citelnosti kodu a navic kdyz je to v PHP zebehnuty odzacatku tak to uz nemuzes odstranit tady se taky jedna o tak zvanou vec ktera ti asi unika a to je zpetna kompatibilita ale ta se zase az tak nepovedla v PHP5 jak se tak zatim koukam a to ze si myslis ze tam neni zadna invovace si na omlyu pro PHP je to razantni inovace myslim si ze lepsi prace s objekty neco urcite zlepsi
a navic kdyz se ti PHP nelibi tak proc v nem delas prejdi si na .NET a nemusis se trapit napriklad s dolarama u promenych
Datum vložení: 1.4.2003 11:25:35
Pane Podhorsky, budete-li pouzivat interpunkci, stanou se vase prispevky citelnejsimi a pochopitelnejsimi.
Datum vložení: 1.4.2003 14:51:07
pane lubos01 kdyz ji zacnete pouzivat vy!!!! tak se mozna rozmyslim a zacnu ji vyuzivat taky ale ono neni tezky jenom obtezovat lidi s nesmyslama ja su zvyklej psat rychle bez interpunkce a je to ciste moje vec a jestli vam to vadi muzete s tim treba nechat vyfotit me je to uprime jedno a navic kdo vas nutil cist muj prispevek kdyz se mi neco nelibi tak to nectu logicka uvaha
Datum vložení: 1.4.2003 15:45:06
Pane Podhorsky, interpunkce jsou carky mezi vetama, viz <a href='http://www.maturita.cz/cestina/gramatika/interpunkce.htm' target='_blank'>http://www.maturita.cz/cestina/gramatika/interpunkce.htm</a>, jejiz nedodrzovami muze vest, a casto i vede, ke zmateni vyznamu souveti.
Vas prispevek jsem si precetl z toho duvodu, ze me vas nazor zajima, nebot se mi jevi jako prinosny. Nicmene nedodrzovani elementarnich pravidel psane cestiny znesnadnuje citateli pochopeni textu. Take logicka uvaha.
Datum vložení: 1.4.2003 19:28:53
tak dobre nebudeme se hadat ja proste tyhle veci ve vetach vynechavam spis me to zdrzuje
Datum vložení: 1.4.2003 14:57:42
Prace s objekty je vyhodna (a v dnesni dobre rekl bych i nutnosti).
Prosim Vas, jaka zpetna kompatibilata ??!! verze jazyka X musi byt kompatibilni s X+1, ale v zasade X+1 by nemelo byt kompatibilni s X, pak je X stejny jako X+1. <= toď "definice".
Pro PHP je to inovace, ale Vy jsme me moc nepochopil, ja jsem nemluvil o inovaci v ramci jednoho jazyka, ale o inovaci, ktera by byla prinosna pro vsechny dalsi nasledovniky/ostatni jazyky.
Datum vložení: 1.4.2003 15:14:59
no to co zatim o programovani vim a je fakt ze se orientuju prevazne v PHP a s ostatnima jazykama si nejak nerozumim :) tak uz toho neni moc co by prineslo prinos i ostatnim jazykum ted to beru jak nejaka revolucni vec
a s tou kompatibilitou je vzdycky problem viz PHP4 a PHP3 v pripade objektu(ktere byly v PHP3 totalne o nicem) tak ta kompabilita je taky nizka ale porad vetsina scriptu fungovala ale z hlediska PHP5 a PHP4 to bude trochu vetsi propast teda tak jak to vidim ja ale je zbytecnost spekulovat o nicem co jeste neni kompletne na svete a treba to autori nejak osefujou
Datum vložení: 1.4.2003 15:56:41
spekulovat se musi :)
Datum vložení: 31.3.2003 22:05:08
Podle me to nejaky vylepseni ohledne OOP chtelo. Navic, pokud se ti ty novinky nelibi, tak je vubec nemusis pouzivat. Vzdyt i v PHP5 se prece da programovat klasicky skriptove.
Co se tyce toho $, tak to je jen otazka zvyku. Myslim, ze kod vypada i o neco lepe, kdyz jsou promenne odliseny od funkci, keywordu atd.
Jedine, co mi ve vyctu onech inovaci podstatne chybi, je nasobna dedicnost trid.
Jsem docela zvedav, jaka ta finalni verze vlastne bude
Zatim zdar vsichni
Datum vložení: 31.3.2003 23:13:33
Pletete pate pres devate, jedna vec je syntaxe daneho jazyka., zde de PHP vstric lepsim zitrkum a drzi Ceckovou konvenmci, ze ktere dnes opravdu vychazi snad kazdy jazyk. Co se tyka bloku try,catch, finally tak neni duvod zavadet nic noveho a prevratneho. Co se tyce podpory OOP, tak pro zatim to malo co vime je celkem slusny pokrok oproti PHP 4, kde se o objektoveo orientovanem programovani nedalo ani premyslet viz. minula diskuze.
Ohledne runtime libray je to spis pohled platformy a PHP je koncipovano jinak nez DOT.NET a Java 2
Datum vložení: 1.4.2003 2:25:23
Je snadné napadat jednotlivosti bez jakékoli představy o celkové koncepci.
Jistě, že si PHP z příbuzných jazyků bere to lepší, ale přece kvůli tomu není mutant bez inovace... nebo je snad mutantem XML, zmiňovaná Java či C#?
Klíčové slovo function nijak nesouvisí s Pascalem, důvodem jeho zavedení je to, že PHP explicitně nepoužívá datové typy a nějak je ty rutiny potřeba označit.
Návrh na odstranění $ může vypadat zajímavě, ale jen pro ty, kdo nad tím nepřemýšlí. PHP by tím mnohem více ztratilo než získalo. Těžko by pak bylo možné vyhodnocovat proměnné uvnitř řetězců, volat funkce, jejichž název je uložen v proměnné - $foo(), či odkazovat se obdobným způsobem na proměnné - $$bar. Mimochodem, nejsou třeba tyhle vlastnosti inovacemi, které v jiných jazycích těžko najdete? Nemluvě o tom, že by se tím pravděpodobně komplikoval parsing a zpomalil běh skriptů.
A co se class library týče, taková vzniká už delší dobu...
Datum vložení: 1.4.2003 14:44:25
Ne, to nejsou mutanti. Protoze kazdy prinasi neco noveho. U PHP5 zasadni zlepseni nevidim.
Parsing ? Samozrejme ze zkomplikoval. Ale vubec by to nemelo mit vliv na beh scriptu, protoze scripty jsou cacheovany. (a pokud by se zpomalil, nebylo by to tak vyrazne ... )
rozhodne idea $$ se hodi pouze pro interpretovaci jazyky. V ostatnich jazykach na clientech by to mohlo delat dost neplechu...
K te class library. Jestli mate link, rad bych se ne to podival. Jen doufam, ze to opet nebude jako u PHP3 a 4, kdy kdyz program nefunguje, druhe co je, koukam na online dokumentaci, jestli opravdu ta funkce v dane verzi (az je jich neni malo) funkce (takovych pripade jsou desitky :(((( )
Datum vložení: 1.4.2003 15:54:58
Myslím, že u PHP bude problém právě s tou zmiňovanou syntaxí... Kdyby si PHP udrželo klasickou céčkovskou, bylo by to super, ale když se do toho přimíchá z každýho jazyka něco, bude to vážně guláš...
U dolaru takovy problem zas nevidim - je to celkem zavedeny (Wizarde:)
A co se týče té kompatibility, bylo by opravdu dobry, kdyby verze X+1 byla PLNE kompatibilni s X... Doufam, ze tomu tak bude i u PHP5
Datum vložení: 1.4.2003 16:02:58
Bude muset, protoze komu se dneska chce prepisovat kody z jedne verze do druhe ... :(
Datum vložení: 2.4.2003 12:16:00
Pseudopozdni vazba typu $foo() a $$bar bohuzel nejsou invoaci, se kterou prislo PHP. PHP se v tomto pripade inspirovalo Perlem.
Datum vložení: 6.5.2003 22:59:37
to je ale v poradku, php nikdy nebylo inovativni samo o sobe, ale vzdy prejimalo ruzne featury z ruznych jazyku.
PS: C# je vlastne (C++)++ :-))) (++C++ se mi moc nezda)
Datum vložení: 9.6.2003 10:44:56
Hehehe,
$ pred premennymi sa mi tiez nepacia a to som uz presiel DOCELA dost programovacich jazykov. $$ a $() sa da nahradit smernikmi napr. z Ccka hoci na druhu stranu priamy pristup do pamete dnes uz neleti hehehe, takze ten napad berte s rezervou ;).
Podla mojho skromneho nazoru ak by sa v php pouzivala syntax iba z jedneho jazyka bolo by to fakt super, kazdy programovaci jazyk by mal mat cistu hierarchiu objektov/funkcii a mne php pripada zatial len ako kopa toho druheho, hoci jazyk tymto neodsudzujem.
Na druhu stranu myslim ze C# je stabilnejsi jazyk a to co je zdokumentovane naozaj je mozne bez vacsich potiazi rozbehat (co u php sa mi nestalo asi u ziadnej verzie od trojkovych az po poslednu 4.x - stale nieco neslo (a momentalne napr. mi nexe zapisovat cookies ten hajzel, predtym zase session premenne nefungovali a podobne problemy podobneho razu)). Takze asi tak.
Datum vložení: 17.4.2006 22:58:04
Ja by som to bral v klide. PHP má z každého jazyka to najlepšie. Aj keď pravda, nie vždy...každopádne keď som sa pozeral na základy OOP v PHP3 tak to bolo nad slnko jasné. Lenže keď sa teraz pozrem na to isté v PHP5 tak z toho viem akurát hovno lebo nikde nie vysvetlené čo sú to tie výnimky a kopa ďalších vecí. V starom objektovom modele nič také nebolo. Možno tie inovácie sú k niečomu dobré, ale to by som predtým musel robiť nejaký iný objektový jazyk aby som tomu trochu rozumel