PHPはWebアプリケーションを作る道具として普及しています。 けれど、もしあなたがRuby on Railsに興味をもったのなら、 あるいは一般的な作業をさせるのに適した言語を求めているなら、Rubyは一見の価値があります。
PHPとの類似
PHPと同様に、Rubyは…
- 動的に型付けされます。変数の宣言について心配することはありません。
- クラスがあります。PHP5のように public、protected、privateによるアクセス制御が可能です。
- いくつかの変数は$から始まります(すべてではありませんが)。
- evalもあります。
- 式展開を使えます。"$foo is a $bar"とする代わりに"#{foo} is a #{bar}"と書きます。 シングルクォーテーションで括った時には、これは有効になりません。
- ヒアドキュメントがあります。
- PHP5と同様に、例外機構があります。
- かなり膨大な標準ライブラリがあります。
- array()を- {と- }に変えれば、配列とハッシュは期待するように動きます。- array('a' => 'b')は- {'a' => 'b'}とします。
- trueと- falseはPHPと同じように振る舞います。ただし、- nullは- nilになります。
PHPとの違い
PHPと違って、Rubyは…
- 強い型付けがあります。文字列や数値などを互いに変換するためには、言語に任せるのではなく
to_s、to_iなどのメソッドを明示的に呼ぶ必要があります。
- 文字列、数、配列、ハッシュなどはオブジェクトです。abs(-1)を呼び出す代わりに-1.absとします。
- パラメータを渡していることを明確にする場合を除いて、メソッド呼び出しの括弧は基本的にオプションです。
- 標準ライブラリや拡張は、モジュールやクラスを使って構造化されています。アンダースコアなどによる名前付けを使った構造化は行いません。
- リフレクション機能はオブジェクトごとに備わっています。PHP5のようにReflectionクラスを使う必要はありません。
- 変数は参照です。
- 抽象クラス(abstract)やinterfaceはありません。
- ハッシュと配列には互換性はありません。
- falseと- nilのみが偽になります。- 0や- array()、- ""はすべて真と評価されます。
- ほとんどすべてのことは、メソッド呼び出しです。raise(PHPにおけるthrow)ですら、メソッド呼び出しです。