PHP și Ruby sunt limbi de scripting din partea serverului - cel mai frecvent utilizate pentru a dezvolta pagini web.
PHP | Rubin | |
---|---|---|
Blochează delimiterul comentariilor | /* și */ | = începe și = sfârșit; orice text după __END__ |
Terminatorii declarației | Semicolon terminat | Newline terminat |
Arrayuri dimensionate dinamic | da | da |
Comentariile inline delimiter | // și # | # |
Clase | da | da |
Operator de concatenare de șir | . (punct) | + (semnul plus) |
Paradigme de programare | imperativ, orientat pe obiect, reflectorizant | Imperativ, orientat spre obiecte, reflectorizant, orientat spre aspect, funcțional |
OOP (programare orientată pe obiecte) | Da, moștenire singură. | Da, dar nu trebuie. |
Sunt acceptate matrice multidimensionale | da | da |
Acces element element matrice | $ Array [i] | array [i] |
Verificarea tipului | Dinamic | Dinamic |
Sintaxă pentru lungimea șirului | strlen ($ string) | string.size sau string.length |
Colecția de gunoi | da | da |
Operații vectorizate | da | da |
Sintaxă de comparație a șirului | strcmp ($ string1, $ string2) | string1 string2 |
Sintaxa de testare a egalității șirului | $ string1 == $ string2 | string1 == string2 |
Tastare | Tiparerea slabă | Tiparit puternic |
Sintaxă de căutare a șirului | strpos ($ string, $ substring [, startpos]) returnează FALSE dacă elementul de căutare ($ substring) nu a fost găsit | string.index (substring [, startpos]) se întoarce la zero dacă nu s-a găsit elementul de căutare (subcislă) |
Sintaxă de formatare a șirului | sprintf (formatting, elemente) | sprintf (formatting, elemente) |
Sintaxă pentru îmbinarea unui șir de șiruri de caractere | implode (separator, array_of_strings) | array_of_strings.join (separator) |
Sintaxă pentru subrevers | substr (șir, startpos, numChars) | șir [startpos, numChars] |
Sintaxă pentru căutare și înlocuire în șir | str_replace ($ find, $ replace, $ string) | string.gsub (găsiți, înlocuiți) |
Utilizarea prevăzută | Aplicații web, CLI | Aplicații, scripting |
Sintaxă pentru inversarea unui șir | strrev (string $) | string.reverse |
Obiective de design lingvistic | Robustitate și simplitate | Expresivitate, citibilitate |
Sintaxă pentru conversia șirului în majuscule | strtoupper (string $) | string.upcase |
Exemple de utilizare | WordPress, Wikipedia | Indiegogo, Hulu |
Modelul de tip matrice construit în PHP este în realitate o matrice asociativă. Chiar și atunci când se utilizează indexuri numerice, PHP o stochează intern ca o matrice asociativă. Acesta este motivul pentru unul din PHP poate avea matrice non-consecutive indexate numeric. Cheile trebuie să fie valori scalare (șir, număr în virgulă mobilă sau număr întreg), în timp ce valorile pot fi de tip arbitrar, inclusiv alte matrice și obiecte. Matricele sunt eterogene; o singură matrice poate avea chei de diferite tipuri. Rețelele asociative ale PHP pot fi folosite pentru a reprezenta copaci, liste, stive, cozi și alte structuri de date comune care nu sunt construite în PHP.
În PHP, o matrice asociativă poate fi formată într-unul din două moduri:
$ phonebook = array (); Cartea telefonică $ ['Sally Smart'] = '555-9999'; Cartea de telefon $ ['John Doe'] = '555-1212'; $ Agenda telefonică [ 'J. Random Hacker '] =' 555-1337 '; // sau $ phonebook = array ('Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Random Hacker' => '555-1337';); // sau $ phonebook ['contacte'] ['Sally Smart'] ['numărul'] = '555-9999'; Cartea telefonică $ ['contacte'] ['John Doe'] ['numărul'] = '555-1212'; $ Agenda telefonică [ 'contacte'] [ 'J. Random Hacker '] [' numărul '] =' 555-1337 ';
De asemenea, puteți trece printr-o matrice asociativă în PHP după cum urmează:
foreach ($ phonebook ca $ nume => număr $) echo "Număr pentru $ nume: $ număr \ n";
// Pentru ultimul exemplu de tabelă, acesta este folosit ca acest prefix ($ phonebook ['contacts'] ca $ name => $ num) echo "Nume: $ name"; echo "Număr: $ num ['număr']";
PHP are un set extins de funcții pentru a funcționa pe rețele.
În Ruby, o matrice asociată este numită Hash și este folosită după cum urmează:
agenda telefonică = 'Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Random Hacker '=>' 553-1337 '
agenda telefonică ['John Doe']
produce '555-1212'
Pentru a itera peste hash, utilizați ceva asemănător cu următorul:
phonebook.each | cheie, valoare | pune tasta + "=>" + valoare
În plus, fiecare cheie poate fi afișată individual:
agenda telefonică.each_key | key | pune cheia
Fiecare valoare poate fi de asemenea afișată:
agenda telefonică.each_value | value | pune valoare