PHP en Ruby zijn scriptingtalen aan de serverzijde - het meest gebruikt om webpagina's te ontwikkelen.
PHP | Robijn | |
---|---|---|
Afbakening van opmerkingen blokkeren | / * en * / | = begin en = einde; ook elke tekst na __END__ |
Terminators van de verklaring | Puntkomma beëindigd | Newline beëindigd |
Arrays dynamisch bemeten | Ja | Ja |
Scheidingspunt voor inline opmerkingen | // en # | # |
Klassen | Ja | Ja |
String concatenatie-operator | . (punt) | + (het plusteken) |
Programmeerparadigma's | imperatief, objectgericht, reflecterend | Dwingend, objectgericht, reflecterend, aspectgericht, functioneel |
OOP (Object Oriented Programming) | Ja, enkele erfenis. | Ja, maar dat hoeft niet. |
Multidimensionale arrays ondersteund | Ja | Ja |
Toegang tot array-elementen | $ Matrix [i] | matrix [i] |
Type controle | Dynamisch | Dynamisch |
Syntaxis voor tekenreekslengte | strlen ($ string) | string.size of string.length |
Garbage Collection | Ja | Ja |
Gevectoriseerde operaties | Ja | Ja |
Syntaxis van tekenreeksvergelijking | strcmp ($ string1, $ string2) | string1 string2 |
Syntaxis voor syntaxis voor synchroniciteitstest | $ string1 == $ string2 | string1 == string2 |
Typen | Zwak typen | Sterk getypt |
Syntaxis van tekenreeks zoeken | strpos ($ string, $ substring [, startpos]) retourneert FALSE als het zoekitem ($ substring) niet wordt gevonden | string.index (substring [, startpos]) retourneert nul als zoekitem (substring) niet wordt gevonden |
Syntaxis van tekenreeks opmaken | sprintf (formatstring, items) | sprintf (formatstring, items) |
Syntaxis om lid te worden van een reeks tekenreeksen | implode (scheidingsteken, array_of_strings) | array_of_strings.join (separator) |
Syntaxis voor subtekenreeks | substr (string, startpos, numChars) | string [startpos, numChars] |
Syntaxis voor zoeken en vervangen binnen string | str_replace ($ find, $ replace, $ string) | string.gsub (zoeken, vervangen) |
Beoogd gebruik | Web-applicaties, CLI | Toepassingen, scripting |
Syntaxis voor het omkeren van een string | strrev ($ string) | string.reverse |
Taalontwerpdoelen | Robuustheid en eenvoud | Expressiviteit, leesbaarheid |
Syntaxis voor het converteren van tekenreeks naar hoofdletters | strtoupper ($ string) | string.upcase |
Voorbeelden van gebruik | WordPress, Wikipedia | Indiegogo, Hulu |
PHP's ingebouwde array type is in werkelijkheid een associatieve array. Zelfs bij gebruik van numerieke indexen slaat PHP het intern op als een associatieve array. Dit is de reden waarom iemand in PHP niet-opeenvolgende numeriek geïndexeerde arrays kan hebben. De sleutels moeten scalaire waarden zijn (tekenreeks, drijvende-kommawaarde of integer), terwijl waarden van willekeurige typen kunnen zijn, inclusief andere arrays en objecten. De matrices zijn heterogeen; een enkele array kan sleutels van verschillende typen bevatten. PHP's associatieve arrays kunnen worden gebruikt om bomen, lijsten, stapels, wachtrijen en andere gemeenschappelijke datastructuren weer te geven die niet in PHP zijn ingebouwd.
In PHP kan een associatieve array op twee manieren worden gevormd:
$ phonebook = array (); $ phonebook ['Sally Smart'] = '555-9999'; $ phonebook ['John Doe'] = '555-1212'; $ Telefoonboek [ 'J. Random Hacker '] =' 555-1337 '; // or $ phonebook = array ('Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Random Hacker' => '555-1337',); // or $ phonebook ['contacts'] ['Sally Smart'] ['number'] = '555-9999'; $ phonebook ['contacts'] ['John Doe'] ['number'] = '555-1212'; $ Telefoonboek [ 'contacten'] [ 'J. Random Hacker '] [' number '] =' 555-1337 ';
Je kunt ook als volgt een associatieve array doorlopen in PHP:
foreach ($ phonebook as $ name => $ number) echo "Number for $ name: $ number \ n";
// Voor het laatste array-voorbeeld wordt dit als volgt gebruikt voor elk ($ phonebook ['contacts'] als $ name => $ num) echo "Name: $ name"; echo "Number: $ num ['number']";
PHP heeft een uitgebreide reeks functies om op arrays te werken.
In Ruby wordt een associate array een hash genoemd en wordt als volgt gebruikt:
telefoonboek = 'Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Willekeurige hacker '=>' 553-1337 '
telefoonboek ['John Doe']
produceert '555-1212'
Als u de hash wilt herhalen, gebruikt u zoiets als het volgende:
telefoonboek.elkaar | sleutel, waarde | zet toets + "=>" + waarde
Bovendien kan elke toets afzonderlijk worden getoond:
phoneebook.each_key | key | zet sleutel
Elke waarde kan ook worden getoond:
telefoonboek.each_value | waarde | zet waarde