PHP og Ruby er server-side scripting språk - oftest brukt til å utvikle nettsider.
PHP | Rubin | |
---|---|---|
Blokker kommentarer avgrensning | / * og * / | = start og = slutt; også noen tekst etter __END__ |
Statement terminators | Semikolon avsluttet | Newline avsluttet |
Arrays dynamisk størrelse | Ja | Ja |
Inline kommentarer avgrensning | // og # | # |
klasser | Ja | Ja |
Stringkonsentasjonsoperatør | . (punktum) | + (plustegnet) |
Programmeringsparadigmer | imperativ, objektorientert, reflekterende | Imperative, objektorientert, reflekterende, aspektorientert, funksjonelt |
OOP (Objektorientert programmering) | Ja, enkelt arv. | Ja, men du trenger ikke. |
Multidimensjonale arrayer støttes | Ja | Ja |
Array element tilgang | $ Rekke [i] | rekke [i] |
Skriv inn kontroll | dynamisk | dynamisk |
Syntaks for strenglengde | strlen ($ string) | string.size eller string.length |
Søppelsamling | Ja | Ja |
Vectoriserte operasjoner | Ja | Ja |
String sammenligning syntaks | strcmp ($ string1, $ string2) | string1 string2 |
Strekprøve syntaks | $ string1 == $ string2 | string1 == string2 |
Typing | Svak maskinskriving | Sterkt skrevet |
Stringsøk-syntaks | strpos ($ string, $ substring [, startpos]) returnerer FALSE hvis søkeelementet ($ substring) ikke ble funnet | string.index (substring [, startpos]) returnerer null hvis søkeelement (substring) ikke funnet |
Stringsformatering syntaks | sprintf (formatstring, elementer) | sprintf (formatstring, elementer) |
Syntaks for å bli med i en rekke strenger | implodere (separator, array_of_strings) | array_of_strings.join (separator) |
Syntaks for substring | substr (streng, startpos, numChars) | streng [startpos, numChars] |
Syntaks for søk og erstatt innen streng | str_replace ($ find, $ replace, $ string) | string.gsub (finn, erstatt) |
Tiltenkt bruk | Web applikasjoner, CLI | Søknader, skripting |
Syntaks for å reversere en streng | strrev ($ string) | string.reverse |
Språk design mål | Robusthet og enkelhet | Ekspressivitet, lesbarhet |
Syntaks for å konvertere streng til store bokstaver | strtoupper ($ string) | string.upcase |
Eksempler på bruk | WordPress, Wikipedia | Indiegogo, Hulu |
PHPs innebygde array type er i realiteten en assosiativ array. Selv når man bruker numeriske indekser, lagrer PHP internt det som en assosiativ array. Dette er grunnen til at en i PHP kan ha ikke-påfølgende numerisk indekserte arrays. Nøklene må være skalarverdier (streng, flytpunktsnummer eller heltall), mens verdier kan være av vilkårlig type, inkludert andre arrays og objekter. Arrays er heterogene; Et enkelt utvalg kan ha nøkler av forskjellige typer. PHPs associative arrayer kan brukes til å representere trær, lister, stabler, køer og andre vanlige datastrukturer som ikke er innebygd i PHP.
I PHP kan en assosiativ array dannes på en av to måter:
$ telefonbok = array (); $ telefonbok ['Sally Smart'] = '555-9999'; $ telefonbok ['John Doe'] = '555-1212'; $ Telefonbok [ 'J. Tilfeldig Hacker '] =' 555-1337 '; // eller $ phonebook = array ('Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Tilfeldig Hacker' => '555-1337'); // eller $ telefonbok ['kontakter'] ['Sally Smart'] ['number'] = '555-9999'; $ telefonbok ['kontakter'] ['John Doe'] ['number'] = '555-1212'; $ Telefonbok [ 'kontakter'] [ 'J. Tilfeldig Hacker '] [' number '] =' 555-1337 ';
Du kan også gå gjennom en associativ array i PHP som følger:
foreach ($ telefonbok som $ name => $ number) echo "Nummer for $ navn: $ nummer \ n";
// For det siste arrayeksemplet blir det brukt som dette foreach ($ telefonbok ['kontakter'] som $ name => $ num) echo "Name: $ name"; ekko "Nummer: $ num ['number']";
PHP har et omfattende sett med funksjoner for å operere på arrays.
I Ruby kalles en tilknyttet array en Hash og brukes som følger:
telefonbok = 'Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Tilfeldig Hacker '=>' 553-1337 '
telefonbok ['John Doe']
produserer '555-1212'
For å iterere over hash, bruk noe som følgende:
phonebook.each | key, value | setter nøkkel + "=>" + verdi
I tillegg kan hver nøkkel bli vist enkeltvis:
phonebook.each_key | key | setter nøkkelen
Hver verdi kan også vises:
phonebook.each_value | value | setter verdi