PHP 被廣泛的應用在網頁程式中,如果你想試試看 Ruby on Rails,或是你想要一個更加講究的多功能程式語言,Ruby 值得一看。
相似點
Ruby與PHP一樣的地方…
- Ruby是個動態型別的程式語言,你不用擔心宣告變數的問題。
- Ruby有類別,也有
public
,private
, 與protected
方法,就像PHP 5一樣。 - 也有變數以$號開頭 (在Ruby中表示這是全域變數)
- 也有
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)。
- 呼叫方法時,可以省略括號。
- 標準函式庫和擴充套件都被包裝成模組和類別了。
- 反射(reflection)是 Ruby 物件與生俱來的能力,你不需要像在PHP 5中一樣使用
Reflection
類別。 - 變數都是參照(references)。
- 沒有抽象類別和介面。
- 雜湊和陣列不可互換使用。
- 只有
false
andnil
是 false:0
,array()
and""
在條件判斷時皆為真。 - 幾乎所有東西都是方法呼叫,甚至是
raise
(PHP的throw
).