PHP - широко распространенный язык для веб-приложений, но если вам хочется использовать Ruby on Rails или просто хотите познакомиться с языком более широкого назначения - Ruby то, что надо!
Сходства
В Ruby, как и в PHP, …
- Ruby динамически типизирован, нет необходимости объявлять переменные.
- имеется разграничение видимости в классах, как в PHP 5.
(
public,protectedиprivate). - некоторые переменные начинаются с $ (но не все).
- тоже есть
eval. - можно интерполировать строки (вместо
"$foo is a $bar"пишется"#{foo} is a #{bar}"), как и в PHP это не относится к одинарным кавычкам. - поддерживается Heredoc-синтаксис.
- есть исключения (exceptions), как в PHP 5.
- богатая стандартная библиотека.
- Массивы и хеши работают так, как вы ожидаете, просто замените
array()на{и}:array('a' => 'b')станет{'a' => 'b'}. trueиfalseведут себя так же,nullназываетсяnil
Отличия
В отличие от PHP, в Ruby…
- строгая типизация - надо вызывать
to_s,to_i, чтобы преобразовывать от строки к числу и обратно, не полагаясь, что язык это сделает неявно. - строки, числа, массивы и хеши - объекты - вместо вызова функции с ними как
аргументами (
abs(-1)) вызывается метод (-1.abs). - скобки в вызове метода необязательны, кроме случаев, когда надо явно указать, какой аргумент передается в какую функцию.
- вместо соглашений об именовании (например подчеркивания) стандартная библиотека и расширения представляют собой организованные модули и классы.
- рефлексия - неотъемлемая способность объектов, нет необходимости использовать
отдельный класс
Reflectionкак в PHP 5. - переменные - это ссылки
- отсутствуют абстрактные классы и интерфейсы
- массив и хеш - не одно и то же
- только
falseиnilявляются ложью:0,array()и""являются истиной. - практически все - это вызов метода, даже
raise(throwв PHP).