从 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 中一样,这并不适用于单引号字符串。
  • 有 heredocs。
  • 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)。