PHP jest szeroko używany przy aplikacjach internetowych, ale jeśli chcesz użyć Ruby on Rails lub po prostu chcesz języka programowania, który jest bardziej dopasowany do ogólnego użycia, warto sprawdzić Rubiego.
Podobieństwa
Tak jak w PHP, w Rubim…
- Ruby jest językiem dynamicznie typowanym, tak jak w PHP, stąd też nie musisz się martwić o deklaracje typów zmiennych.
- Istnieją klasy, oraz możesz kontrolować dostęp do nich jak w PHP5
(
public,protectediprivate). - Część zmiennych, jak w PHP zaczyna się od $ (ale nie wszystkie)
- Także istnieje
eval. - Możesz podmieniać zmienne na wartości w stringach. Zamiast
"$foo is a $bar", napiszesz"#{foo} is a #{bar}"—i tak jak w PHP, nie ma to zastosowania do łańcuchów w pojedynczych cudzysłowach. - Istnieją heredoc’i.
- Ruby ma wyjątki, tak jak PHP 5.
- Istnieje dość rozbudowana biblioteka standardowa.
- Tablice i hasze zachowują się jak mógłbyś tego oczekiwać, jeśli
zamienisz
array()na{and}:array('a' => 'b')stanie się{'a' => 'b'}. trueifalsezachowują się jak w PHP, alenullokreślany jest jakonil
Różnice
W przeciwieństwie do PHP, w Rubim…
- Istnieje silna typizacja. Musisz wywołać
to_s,to_iitd., aby przeprowadzić konwersje pomiędzy łańcuchami znaków, liczbami całkowitymi i podobnymi, zamiast polegać, że język zrobi to za ciebie. - Stringi, liczby, tablice, hasze itp. są obiektami. Zamiast wywoływać abs(-1) piszesz -1.abs.
- Nawiasy są opcjonalne w wywołaniach metod, chyba że musisz wyjaśnić w ten sposób, które parametry odnoszą się do odpowiednich wywołań metod.
- Zamiast konwencji nazw (np. podkreśleń), biblioteka standardowa Rubiego (i nie tylko) jest podzielona na moduły i klasy
- Mechanizm refleksji jest odziedziczoną właściwością obiektów, nie
musisz używać klas
Reflectionjak w PHP 5. - Zmienne są referencjami
- Nie ma klas
abstractczy teżinterfece - Hasze i tablice nie są zamienne, to dwie różne rzeczy
- Tylko
falseinilsą fałszem:0,array()i""są prawdą w wywołaniach warunkowych. - Prawie wszystko jest wywołaniem metody, nawet
raise(throww PHP).