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).