PHP vs. Ruby

PHP și Ruby sunt limbi de scripting din partea serverului - cel mai frecvent utilizate pentru a dezvolta pagini web.

Diagramă de comparație

PHP comparativ cu graficul comparației Ruby
PHPRubin
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

Conținut: PHP vs Ruby

  • 1 Array-uri asociative în PHP vs. Ruby
    • 1.1 PHP
    • 1.2 Ruby
  • 2 Referințe

Machete asociative în PHP vs. Ruby

PHP

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.

Rubin

Î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 

Referințe

  • Sintaxa PHP și Ruby, comparație side-by-side