PHP 被广泛的应用在网页程序中,如果你想使用 Ruby on Rails,或者你需要一个更加讲究的多功能程序语言,Ruby 值得一看。
相似点
Ruby 与 PHP 一样的地方…
- 和 PHP 一样,Ruby 是动态类型的程序语言,所以你不用担心声明变量的问题。
- Ruby 有类,也有
public、private和protected方法,并且你可以控制对他们的访问,就像 PHP 5 一样。 - 一些变量以 $ 符开头,和 PHP 一样 (但不总是一样)。
- 也有
eval。 - 你可以使用字符串内嵌。但不是用
"$foo is a $bar",而是"#{foo} is a #{bar}"——跟 PHP 一样,这对用单引号包起来的字符串无效。 - 有 Heredocs。
- Ruby 有异常处理,就像 PHP 5 一样。
- Ruby 也有非常广泛的标准函数库。
- 数组和散列的工作会和你期望的一样,只要你把
array()换成{和}:array('a' => 'b')变成{'a' => 'b'}。 true和false和 PHP 一样,但null变成了nil。
相异点
Ruby 与 PHP 不同的地方…
- Ruby 是强类型语言,你需要使用
to_s、to_i等方法使变量在字符串、整数等类型之间转换,而不能依赖编程语言去完成它。 - 字符串、数字、数组、散列等都是对象。所以应该用 -1.abs 而不是 abs(-1) 。
- 调用方法时括号是可以省略的,除非需要明确哪些参数对应哪些调用方法时。
- 取代了命名约定,例如下划线,标准函数库和扩展都被包装成模块和类。
- 反射是 Ruby 对象与生俱来的能力,你不需要像在 PHP 5 中一样使用
Reflection类。 - 变量都是被引用的。
- 沒有抽象类
abstract或接口interface。 - 散列和数组不能互换使用。
- 只有
false和nil是假:0、array()和""在条件判断时均为真。 - 几乎所有东西都是调用方法,甚至是
raise(PHP 的throw)。