|
PHP PHP aplikacije, Smarty, PEAR |
|
Alati teme | Način prikaza |
|
18. 10. 2009. | #1 |
Goran Pilipović
Sir Write-a-Lot
|
Molim te, daj mi primer kako ti "izvlačiš" recimo 3 karakter iz nekog stringa. Stvarno me interesuje koje je to bolje i preglednije rešenje.
I da, kada sam ja prvi put pokušao tako nešto, i ja sam probao sa $string[N], očekujući da je ista sintaksa kao u C, međutim ako su već uveli nešto (koliko god se [ne]slagali sa tim) što se vuče jako dugo, kako mogu tek tako da odluče da to izbace od sledeće verzije.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
18. 10. 2009. | #2 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Potpisujem da je u ranijim verzijama manuala stajalo samo $string{2} tj. u dokumentaciji je stajalo da je obavezno koriscene viticastih zagrada za pristup x-tom elementu niza a ne (kao u C-u) uglastih.
E sad da li je to i ranije radilo i sa uglastim i sa viticastim pre nego se neko setio da to i dokumentuje - ne bih znao. @bluesman Fakat najjednostavniji nacin da izvuces n-ti element u stringu je bas ovaj pristup |
18. 10. 2009. | #3 |
A suicide bomber!
Certified
|
sto se tice {} vs [] sintaxe za pristupanje pojedinacnim karakterima stringa, ja mogu da potpisem da je u predhodnim verzijama manuala (pre nego sto je 5.3 i zapocet) pisalo da {} sintaxa nije preporucljiva i da treba koristiti [].
ja se php-om bavim od verzije 5 (mada sam bio prinudjen i da pisem php4-compatible kod) i nikada nisam koristio {} vec bas []... a sto se samog PHP 5.3 tj PHP 6 tice meni se neke "novotarije" bas svidjaju (closures.. hell yea!), dok su mi neke mnooogo lose uradjenje (tipa / u nejmspejsima!?!?! to mi toliko izgleda neprirodno i ruzno da nemam reci... mogli su lepo da koriste . ili eventualno : ako im je . previse tesko za implementaciju - a svaki context-aware parser/kompajler bi bez problema mogao u ovakvoj situaciji da podrzi tacku kao delimiter)... i thumbs up za sve deprecated fje! (mada se slazem da je mnogo bolje ostaviti fju koja ne radi nista nego dizati E_DEPRECATED, ali sa function_exists lako moze da se 90% koda koji koristi te fje natera da igra po pravilima sestice...)
__________________
jQuery addict! |
18. 10. 2009. | #4 |
član
Certified
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
|
Nažalost koliko god PHP manual bio koristan opšte je poznato da on nije baš bez grešaka pa se često dešavalo da se neke stvari potpuno pogrešno dokumentuju. Da li je to bio slučaj i sa ovim primerom ne bih znao ali kompleksna "vitičasta" sintaksa je uvedena u PHP 4 dok recimo klasično indeksiranje stringova ako me pamćenje ne vara postoji još od PHP verzije 2 (naravno one "prepisane" savremenije).
|
18. 10. 2009. | #5 | ||
član
Certified
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
|
Citat:
Dakle, ako bih ikada bio u situaciji da moram da pristupim sadržaju određenog indeksa stringa u PHPu onda bih sigurno koristio sintaksu sa uglastim zagradama $string[index] ne zato što teram inat ili što je ona možda bolja i preglednija već zato što je svakako logičnija, tradicionalnija i ustaljenija varijanta od "vitičaste" alternative. Drugim rečima svako ko se ikada dotakao bilo kog programskog jezika koji podržava manipulaciju stringova kroz nizove zna da se indeksima stringa pristupa korišćenjem uglastih zagrada. To što PHP podržava i ovu alternativnu sintaksu je jedna od njegovih specifičnosti koja verovatno nikada nije trebala da ugleda svetlost dana ali valjda je postalo jasno do sada da je PHP tehnologija za koju važi pravilo da nove i specifične stvari i ne moraju nužno da budu bolje Što se tiče "izvlačenja" dela stringa tu verovatno ne bi trebalo da bude nekakve nedoumice. PHP je bar takav da je velika verovatnoća da za sve što može da se reši jezičkim konstruktima postoji i odgovarajuća funkcija. U konkretnom primeru substr bi trebalo da bude dovoljno dobro rešenje. Citat:
Kôd:
#include <stdio.h> int main(){ int i; char a[25] = "Test string!"; for(i = 0;i < strlen(a); i++){ printf("%c", a[i]); } return 0; } Kôd:
<?php $string = "Test string!"; for($i = 0; $i < strlen($string); $i++){ echo $string[$i]; } ?> Inače svako može da učestvuje u davanju predloga vezanih za nove verzije i revizije PHPa putem ogromnih mailing lista na matičnom sajtu a ono što danas nosi naziv "PHP 5.3" verovali ili ne je uglavnom plod diskusije i smerova na koje je sama zajednica najviše uticala Poslednja izmena od holodoc : 18. 10. 2009. u 21:57. Razlog: Type loading error... |
||
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Ovo je trebao biti PHP6! | Ilija Studen | PHP | 7 | 10. 08. 2008. 21:29 |