PHP 在 Web 应用程序中被广泛使用,但如果你想使用 Ruby on Rails 或者只是想要一种更适合通用用途的语言,那么 Ruby 值得一看。
相似之处
如同 PHP 一样,在 Ruby 中…
- Ruby 和 PHP 一样是动态类型语言,因此你无需担心必须声明变量。
- 存在类,并且你可以像 PHP 5 那样控制对其的访问权限(
public
、protected
和private
)。 - 一些变量以 $ 开头,就像在 PHP 中一样(但并非全部)。
- 也有
eval
。 - 你可以使用字符串插值。 你不必使用
"$foo is a $bar"
,你可以使用"#{foo} is a #{bar}"
——就像在 PHP 中一样,这不适用于单引号字符串。 - 存在 heredoc。
- Ruby 有异常处理,就像 PHP 5 一样。
- 存在相当大的标准库。
- 数组和哈希的工作方式如预期一样,如果你将
array()
替换为{
和}
:array('a' => 'b')
变为{'a' => 'b'}
。 true
和false
的行为与 PHP 中相同,但null
被称为nil
。
不同之处
与 PHP 不同,在 Ruby 中…
- 存在强类型。你需要调用
to_s
、to_i
等来在字符串、整数等之间进行转换,而不是依赖语言来完成转换。 - 字符串、数字、数组、哈希等都是对象。你不用调用 abs(-1),而是 -1.abs。
- 方法调用中的括号是可选的,除非为了明确哪些参数传递给哪个方法调用。
- 标准库和扩展被组织在模块和类中。
- 反射是对象的固有能力,你不需要像在 PHP 5 中那样使用
Reflection
类。 - 变量是引用。
- 没有
abstract
类或interface
。 - 哈希和数组不可互换。
- 只有
false
和nil
为假:0
、array()
和""
在条件语句中都为真。 - 几乎所有东西都是方法调用,甚至包括
raise
(在 PHP 中是throw
)。