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