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