PHPとRubyのコードの書き方を比較
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
ウェブに特化したPHPは、軽いしとっつきやすいし、資料も多いしライブラリ豊富で、個人的には好きです。
3~4年ほど前にプログラムの勉強をはじめ、最初はPerlに挫折したけど、PHPならなんとか動くものを書くことができた。
でも、PHPはよく叩かれる言語みたいだ・・・
PHPのどこがどう決定的に悪いのか、私にはいまいちよく分かりませんが。
スポンサーリンク
さてと・・・最近お休みしていたRubyのお勉強を再開しました。→Ruby入門勉強ルーム
Rubyを一通り学んでみて分かったことは、PHPよりRubyのほうが気持ちよく書けるということ。(ここが大事なのかもしれないけどw)
簡単な例題で、両者のコードを比較してみます。
5要素からなる値段の配列の各要素に、消費税をかけて新たな配列を作る場合。
PHPの場合
<?php // foreachで回す $prices = array(200, 150, 36, 1280, 640); $taxin_prices = array(); foreach ($prices as $price) { array_push($taxin_prices, floor($price * 1.05)); } echo "<pre>"; var_dump($taxin_prices); echo "</pre>"; // phpのmap(array_map)を使う $prices = array(200, 150, 36, 1280, 640); function taxin($price) { // コールバック関数定義が面倒! return floor($price * 1.05); } // コールバック関数を呼んでmap $taxin_prices = array_map("taxin", $prices); echo "<pre>"; var_dump($taxin_prices); echo "</pre>"; ?>
PHPの場合、foreachで回しながら新たな配列にpushする、またはarray_mapを使う例を書いてみました。
PHPのmap(array_map)は、簡単な処理でもコールバック関数を定義しなきゃいけないのが、ちょっと面倒に感じます。
どちらの例も実行結果は同じで、以下のようになります。
array(5) { [0]=> float(210) [1]=> float(157) [2]=> float(37) [3]=> float(1344) [4]=> float(672) }
Rubyの場合
# mapにブロック(イテレータ)を渡せる prices = [200, 150, 36, 1280, 640] taxin_prices = prices.map{|price| (price * 1.05).floor } p taxin_prices # 出力だけなら1行でも書ける p [200, 150, 36, 1280, 640].map{|price| (price * 1.05).floor}
Rubyの上記コードも出力結果は同じで、以下の通りとなります。
[210, 157, 37, 1344, 672]
メソッドに特定の処理を書いたブロックを渡せるので、コールバック関数の定義が必要ありません。
結果、PHPよりも短いコードで済むし、なにより気持ちよく書けます。
言語仕様としては、Rubyのほうがエレガントだと思いますけど、とっつきやすさやレンタルサーバーでの動かしやすさ、ライブラリ・ドキュメント、キラーアプリケーションの豊富さなんかでは、PHPのほうが勝っているので、それが優位になっている理由でしょうか。
スポンサーリンク
>> 次の記事 : ディレクトリを探索してリンク一覧表示
<< 前の記事 : コメントアウトの使い分けと、/*** ~ ***/とか// — を単語登録
- - 関連記事 -
- strpos() や strcmp() など間違えやすいif文での判定
- htmlentities() と htmlspecialchars() の違い
- PHPの内部エンコードと出力文字コード、スクリプト文字コード
- PHPのデバッグ・xdebugをxamppで有効にする
- CakePHPの日本語対応、国際化
- コマンドラインでPHPが起動できない
- 直接ファイルが実行されたときだけ起動するスクリプト
- ディレクトリを探索してリンク一覧表示
- コメントアウトの使い分けと、/*** ~ ***/とか// — を単語登録
- PHPでvar_dump()を使ったお手軽デバッグコード
- プログラミング練習問題をPHPで解いてみた
- CakePHPはMVCかつフルスタックのフレームワーク
- PHP5のクラス定義とオブジェクトのおさらい
- フレームワークCakePHPにチャレンジ
- sort・asort・ksort 配列を並べ替える関数
- foreach構文
- PHPの配列
- strcmp関数
- strcasecmp関数
- PHPヒアドキュメント
スポンサーリンク