O uso do PHP está generalizado para o desenvolvimento de aplicações web, mas se desejar utilizar Ruby on Rails ou simplesmente desejar uma linguagem talhada para um uso mais generalizado, vale a pena dar uma vista de olhos ao Ruby.
Semelhanças
Tal como no PHP, em Ruby …
- O Ruby é tipado dinamicamente, tal como o PHP, não é necessário declarar variavéis.
 - Existem classes e é possível controlar o acesso a elas tal como em PHP
5 (
public,protectedandprivate) - Algumas variáveis começam com $, tal como o PHP (mas não todas)
 - Também existe 
eval - Pode ser utilizada a interpolação de strings. Em vez de 
"$foo é um $bar", podemos escrever"#{foo} é um #{bar}"—tal como em PHP, isto não se aplica para strings entre ‘plicas’ - Existem heredocs
 - Ruby tem excepções, tal como o PHP 5
 - Existe uma biblioteca Standard bastante completa
 - Os arrays e as tabelas de hash funcionam da forma esperada, se alterar
array()por{e}:array('a' => 'b')fica{'a' => 'b'}. trueefalsecomportam-se tal como no PHP, masnullé chamadonilem ruby
Diferenças
Diferente do PHP, em Ruby …
- Existe uma tipagem forte. Deverá utilizar os métodos 
to_s,to_ietc. para converter entre strings, inteiros e demais tipos, em vez de confiar na linguagem para o fazer. - Strings, números, arrays, hashes, etc. são objectos. Em vez de invocarmos abs(-1) é -1.abs
 - Os parêntesis são opcionais nas invocações dos métodos, excepto para clarificar que parâmetros são passados para que método.
 - Em vez de convenções de nomes, tal como o uso de underscore (
_), a biblioteca standard e as extensões estão organizadas em módulos e classes. - A Reflexão é uma capacidade inerente dos objectos, não é necessário
utilizar Classes 
Reflectiontal como no PHP 5 - As variáveis são referências.
 - Não existe uma classe 
abstractouinterfaces - Hashes e arrays são diferentes não se podem fazer passar uma pelo outro.
 - Somente 
falseenilsão falsos:0,array()e""são todos verdade em expressões condicionais. - Quase tudo é uma invocação de um método, até 
raise(throwno PHP).