PHP och Ruby är skriptspråk på serverns sida - vanligtvis används för att utveckla webbsidor.
PHP | Rubin | |
---|---|---|
Blockera kommentarer avgränsare | / * och * / | = start och = slut; också någon text efter __END__ |
Uttalande terminatorer | Semikolon avslutad | Newline avslutas |
Arrays dynamiskt dimensionerade | Ja | Ja |
Inline kommentarer avgränsar | // och # | # |
Klasser | Ja | Ja |
Strängförbindningsoperatör | . (punkt) | + (plustecknet) |
Programmeringsparadigmer | imperativ, objektorienterad, reflekterande | Imperativ, objektorienterad, reflekterande, aspektorienterad, funktionell |
OOP (Objektorienterad programmering) | Ja, enda arv. | Ja, men du behöver inte. |
Multidimensionella arrayer stöds | Ja | Ja |
Array element access | $ Array [i] | array [i] |
Skriv kontroll | Dynamisk | Dynamisk |
Syntax för stränglängd | strlen ($ string) | string.size eller string.length |
Skräp samling | Ja | Ja |
Vectoriserade operationer | Ja | Ja |
String jämförelse syntax | strcmp ($ string1, $ string2) | string1 string2 |
String jämställdhets test syntax | $ string1 == $ string2 | string1 == string2 |
Skriver | Svag typing | Starkt skrivet |
String-söksyntax | strpos ($ string, $ substring [, startpos]) returnerar FALSE om sökobjekt ($ substring) inte hittades | string.index (substring [, startpos]) returnerar noll om sökobjekt (substring) inte hittades |
Stringformateringssyntax | sprintf (formatstring, objekt) | sprintf (formatstring, objekt) |
Syntax för att ansluta till en rad strängar | implodera (separator, array_of_strings) | array_of_strings.join (separator) |
Syntax för substring | substr (sträng, startpos, numChars) | sträng [startpos, numChars] |
Syntax för sökning och ersätt inom sträng | str_replace ($ find, $ replace, $ string) | string.gsub (hitta, ersätt) |
Avsedd användning | Webapplikationer, CLI | Applikationer, skript |
Syntax för att vända en sträng | strrev ($ string) | string.reverse |
Språkdesign mål | Robusthet och enkelhet | Expressiveness, Readability |
Syntax för konvertering av sträng till stor bokstav | strtoupper ($ string) | string.upcase |
Exempel på användning | WordPress, Wikipedia | Indiegogo, Hulu |
PHPs inbyggda array-typ är i realiteten en associativ array. Även när man använder numeriska index, lagrar PHP det internt som en associativ array. Det är därför som en i PHP kan ha icke-konsekutiva numeriskt indexerade arrayer. Nycklarna måste vara skalärvärden (sträng, flytpunktsnummer eller heltal), medan värden kan vara av godtyckliga typer, inklusive andra rader och objekt. Arrayerna är heterogena; En enda grupp kan ha nycklar av olika typer. PHPs associativa arrayer kan användas för att representera träd, listor, staplar, köer och andra vanliga datastrukturer som inte är inbyggda i PHP.
I PHP kan en associativ grupp bildas på ett av två sätt:
$ telefonbok = array (); $ telefonbok ['Sally Smart'] = '555-9999'; $ telefonbok ['John Doe'] = '555-1212'; $ Telefonboken [ 'J. Slumpmässig Hacker '] =' 555-1337 '; // eller $ telefonbok = array ('Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Random Hacker' => '555-1337'); // eller $ telefonbok ['kontakter'] ['Sally Smart'] ['number'] = '555-9999'; $ telefonbok ['kontakter'] ['John Doe'] ['number'] = '555-1212'; $ Telefonbok [ 'kontakter'] [ 'J. Slumpmässig Hacker '] [' number '] =' 555-1337 ';
Du kan också loopa genom en associativ array i PHP enligt följande:
foreach ($ telefonbok som $ name => $ number) echo "Nummer för $ name: $ number \ n";
// För det sista arrayexempelet används den som denna förhand ($ telefonbok ['kontakter'] som $ name => $ num) echo "Name: $ name"; echo "Nummer: $ num ['number']";
PHP har en omfattande uppsättning funktioner för att fungera på arrays.
I Ruby heter en associerad array en Hash och används enligt följande:
telefonbok = 'Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Slumpmässig Hacker '=>' 553-1337 '
telefonbok ['John Doe']
producerar '555-1212'
För att iterera över hash, använd något som följande:
phonebook.each | key, value | sätter nyckel + "=>" + värde
Dessutom kan varje nyckel visas individuellt:
phonebook.each_key | key | sätter nyckel
Varje värde kan också visas:
phonebook.each_value | value | sätter värde