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)ですら、メソッド呼び出しです。