从 PHP 到 Ruby

PHP 在 Web 应用程序中被广泛使用,但如果你想使用 Ruby on Rails 或者只是想要一种更适合通用用途的语言,那么 Ruby 值得一看。

相似之处

如同 PHP 一样,在 Ruby 中…

  • Ruby 和 PHP 一样是动态类型语言,因此你无需担心必须声明变量。
  • 存在类,并且你可以像 PHP 5 那样控制对其的访问权限(publicprotectedprivate)。
  • 一些变量以 $ 开头,就像在 PHP 中一样(但并非全部)。
  • 也有 eval
  • 你可以使用字符串插值。 你不必使用 "$foo is a $bar",你可以使用 "#{foo} is a #{bar}"——就像在 PHP 中一样,这不适用于单引号字符串。
  • 存在 heredoc。
  • Ruby 有异常处理,就像 PHP 5 一样。
  • 存在相当大的标准库。
  • 数组和哈希的工作方式如预期一样,如果你将 array() 替换为 {}array('a' => 'b') 变为 {'a' => 'b'}
  • truefalse 的行为与 PHP 中相同,但 null 被称为 nil

不同之处

与 PHP 不同,在 Ruby 中…

  • 存在强类型。你需要调用 to_sto_i 等来在字符串、整数等之间进行转换,而不是依赖语言来完成转换。
  • 字符串、数字、数组、哈希等都是对象。你不用调用 abs(-1),而是 -1.abs。
  • 方法调用中的括号是可选的,除非为了明确哪些参数传递给哪个方法调用。
  • 标准库和扩展被组织在模块和类中。
  • 反射是对象的固有能力,你不需要像在 PHP 5 中那样使用 Reflection 类。
  • 变量是引用。
  • 没有 abstract 类或 interface
  • 哈希和数组不可互换。
  • 只有 falsenil 为假:0array()"" 在条件语句中都为真。
  • 几乎所有东西都是方法调用,甚至包括 raise(在 PHP 中是 throw)。