給想要學習 Ruby 的 PHP 開發者

edited 十月 2013 in 其他
PHP 在網頁應用是相當普及的,不過如果想要使用 Ruby on Rails 或是需要一個更適合一般需求的語言, Ruby 就值得一試。

相同之處
如同 PHP ,在 Ruby …

* Ruby 與 PHP 一樣是動態型別,所以不需要宣告變數
* 兩者皆有物件,控制存取層級的方式與 PHP 5 相近 (public, protected 與 private)
* 部份變數使用 $ 開始,跟 PHP 一樣(但不是全部)
* 兩者都有 eval
* 可以在字串中插入變數,PHP 的格式是 ”$foo is a $bar” , Ruby 是 ”#{foo} is a #{bar}” ,跟 PHP 一樣,這樣的規則不會套用在單引號中的字串
* 兩者都有 heredocs
* Ruby 有例外處理,如同 PHP 5
* 兩者都有大量的標準函式庫
* 陣列與雜湊的處理方式一致, 不過語法從 array() 改為 { 與 }, array('a' => 'b') 變成 {'a' => 'b'}.
* 布林值與 PHP 一樣,不過 null 在 Ruby 是 nil

相異之處
不像 PHP ,在 Ruby …

* 型別是嚴謹的,必須要透過 to_s 、 to_i 等方法在字串、數字等型別間進行轉換,而不是靠語言本身處理
* 字串、數字、陣列、雜湊等都是物件, abs(-1) 會變成 -1.abs
* 在呼叫方法時括弧並非必要,除非要定義呼叫特定方法的參數
* 不透過底線等命名規則限制,標準函式庫與外掛透過模組與物件組織
* Reflection 是物件本來就有的功能,不需要像 PHP 5 特別透過 Reflection 物件
* 變數都是傳址參照
* 沒有 abstract 物件或 interfaces
* 雜湊與陣列是無法互換的
* 在條件判斷時,只有 false 與 nil 是 false: 0 , array() 與 "" 都是 true
* 幾乎所有功能都是呼叫方法,包括 raise (等同於 PHP 的 throw ).

本文譯自下面網址:
http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-php/

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4215
Sign In or Register to comment.