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