1. kojirock5260

    Posted

    kojirock5260
Changes in title
+PHP Ruby 地味に違うところ諸々
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,299 @@
+
+## はじめに
+
+自分はぺちぱーで、今まで業務で触ったのはphpだけでした。
+
+自分の扱える言語を増やすため、Rubyをやることにしました。
+
+当然ですがPHPと違うところがいろいろあって面白かったです。
+
+特に自分的に、「あ、ここ地味だけど、違うな〜」と思うことを、初歩的なところなんですが、書いておこうと思います。
+
+
+
+## バージョン
+
+### Ruby
+
+ [vagrant@localhost ~]$ ruby -v
+ ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
+
+### PHP
+
+ [vagrant@localhost ~]$ php -v
+ PHP 7.0.3 (cli) (built: Feb 3 2016 11:40:05) ( NTS )
+ Copyright (c) 1997-2016 The PHP Group
+ Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
+
+
+## インクリメントのやり方違う
+
+### php
+
+```test.php
+$i = 1;
+
+$i++;
+echo $i;
+// => 2
+
+$i--;
+echo $i;
+// => 1
+```
+
+### ruby
+
+```test.rb
+i = 1
+
+i += 1
+puts i
+# => 2
+
+i -= 1
+puts i
+# => 1
+```
+
+## コメントの書き方違う
+
+### php
+
+#### 一行コメント
+
+```test.php
+// $test = "ベッキー";
+# $test = "ゲス";
+```
+
+#### 複数行コメント
+
+```test.php
+/**
+
+$test1 = "ベッキー";
+$test2 = "ゲス";
+
+echo $test1 . ":" . $test2;
+
+*/
+```
+
+### ruby
+
+#### 一行コメント
+
+```test.rb
+# test = "ベッキー"
+```
+
+#### 複数行コメント
+
+```test.rb
+=begin
+
+test = "ベッキー"
+
+=end
+```
+
+## elseif文の書き方違う
+
+### php
+
+```test.php
+if ($number === 1)
+{
+ echo "背番号は1番です。";
+}
+elseif ($number >= 2)
+{
+ echo "背番号は2番以上の数字です。";
+}
+else
+{
+ echo "貴方の背番号はありません。";
+}
+```
+
+### ruby
+
+```test.rb
+if number == 1
+ puts "背番号は1番です。"
+elsif number >= 2
+ puts "背番号は2番以上の数字です。"
+else
+ puts "貴方の背番号はありません。"
+end
+```
+
+## 変数の結合のやり方違う
+
+### php
+
+```test.php
+$prefix = "俺のこの手が";
+$suffix = "光って唸る";
+echo $prefix . $suffix;
+// => 俺のこの手が光って唸る
+
+$prefix = "バック・トゥ・ザ・フューチャー";
+$suffix = 2;
+echo $prefix . $suffix;
+// => バック・トゥ・ザ・フューチャー2
+```
+
+### ruby
+
+```test.rb
+prefix = "俺のこの手が"
+suffix = "光って唸る"
+puts prefix + suffix
+# => 俺のこの手が光って唸る
+
+prefix = "バック・トゥ・ザ・フューチャー"
+suffix = 2
+puts prefix + suffix.to_s
+# => バック・トゥ・ザ・フューチャー2
+```
+
+## ループのスキップの仕方が違う
+
+### php
+
+```test.php
+$i = 0;
+while($i < 10)
+{
+ $i++;
+
+ if ($i == 5)
+ {
+ continue;
+ }
+
+ echo "ループ" . $i . "回目\n";
+}
+```
+
+### ruby
+
+```test.rb
+i = 0
+while i < 10 do
+ i += 1
+
+ if i == 5
+ next
+ end
+
+ puts "ループ" + i.to_s + "回目\n"
+end
+```
+
+
+## インスタンス作る方法違う
+
+### php
+
+```test.php
+class User
+{
+ private $name = null;
+
+ public function __construct($name)
+ {
+ $this->name = $name;
+ }
+
+ public function printName()
+ {
+ echo $this->name;
+ }
+}
+
+$user = new User("ゲス男");
+$user->printName();
+# => ゲス男
+```
+
+### ruby
+
+```test.rb
+class User
+ def initialize(name)
+ @name = name
+ end
+
+ def printName
+ puts @name
+ end
+end
+
+user = User.new("ゲス男")
+user. printName()
+```
+
+## ゲッター / セッターの作り方違う
+
+### php
+
+```test.php
+class User
+{
+ private $name = null;
+ private $age = null;
+
+ public function __construct($name, $age)
+ {
+ $this->name = $name;
+ $this->age = $age;
+ }
+
+
+ public function getAge()
+ {
+ return $this->age;
+ }
+
+
+ public function setAge($age)
+ {
+ $this->age = $age;
+ }
+}
+
+$user = new User("ゲス男", 20);
+echo $user->getAge();
+// => 20
+$user->setAge(25);
+echo $user->getAge();
+// => 25
+```
+
+### ruby
+
+```test.rb
+class User
+ def initialize(name, age)
+ @name = name
+ @age = age
+ end
+
+ attr_accessor :age
+end
+
+user = User.new("ゲス男", 20)
+puts user.age
+# => 20
+user.age = 25
+puts user.age
+# => 25
+```
+
+
+
+
+