【基本文法編】Ruby/Python/PHPの違い

## はじめに
個人的な学習のまとめです！
3つの言語の基本文法を学習したのでまとめてみました！

## 1. 出力

```Ruby:Ruby
   puts "Hello, world"
```

```Python:Python
   print("Hello, world")
```


```php:PHP
   echo "Hello, world";
```

## 2. 変数

```Ruby:Ruby
   variable = "変数”
```

```Python:Python
   variable = "変数”
```


```php:PHP
  $variable = "変数”;
```



##3.プロパティ値の出力

```Ruby:Ruby
   # attr_accessor :name　等でゲッターを定義する
   puts person.name
```

```Python:Python
   # def __init__　等でゲッターを定義する
   print(person.name)
```


```php:PHP
  echo $person->name();
```

##4. If文

```Ruby:Ruby
   if number % 15 == 0
     puts "FizzBuzz" 
   elsif number % 3 == 0
     puts "Fizz"
   elsif number % 5 == 0
     puts "Buzz"
   else 
     puts number
   end  
```

```Python:Python
   if number % 15 == 0:
     print("FizzBuzz") 
   elif number % 3 == 0:
     print("Fizz")
   elif number % 5 == 0:
     print("Buzz")
   else:
     print(number)  
```


```php:PHP
  if (number % 15 == 0){
     echo "FizzBuzz";
   } elseif (number % 3 == 0){
     echo "Fizz";
   } elseif (number % 5 == 0){
     echo "Buzz";
   } else {
     echo $number;
   }
```


## 5. 配列/ハッシュ編

```Ruby:Ruby
   # 配列
   array = ["赤", "青", "黄"]
   # ハッシュ
   hash = {"大阪府": "大阪", "愛知県": "名古屋", "東京都": "東京?"}
```

```Python:Python
   # リスト
   lists = ["赤", "青", "黄"]
   # 辞書
   dict = {"大阪府": "大阪", "愛知県": "名古屋", "東京都": "東京?"}
```


```php:PHP
    //配列
   $array = ["赤", "青", "黄"];
   //連想配列
   $associative_array = [
           "大阪府" => "大阪",
           "愛知県" => "名古屋",
           "東京都" => "東京?"
   ];

```


## 6. 繰り返し構文
####6-1.ループ処理

```Ruby:Ruby
   i = 1
   while i <= 100 do
     # 処理
     i += 1
   end
```

```Python:Python
   i = 1
   while i <= 100:
    # 処理
    i += 1

   for i in range(1, 101):
    # 処理
```

```php:PHP
  for ($i = 1;$i <= 100;$i++){
  //処理 
  }
```

####6-2. 反復処理（？）

```Ruby:Ruby
   array.each do |value|
     #処理
   end

   hash.each {|key, value|
    #処理
   }
```

```Python:Python
  for value in lists:
    # 処理

  for key in dict:
     # 処理
```


```php:PHP
  foreach($array as $value){
    //処理 
  }

  foreach($associativeArray as $key => $value){
    //処理
  }
```

##7.関数定義

```Ruby:Ruby
  def hello
   # 処理
  end   
```

```Python:Python
   def hello():
     # 処理
     return # 戻り値
```


```php:PHP
  function hello() {
    // 処理
    return // 戻り値
  }
```


##8.クラスとインスタンス

```Ruby:Ruby
   class Person
     @@number = 0

     def self.classmethod
      # 処理
     end
     
     def initialize(name)
        @name = name
     end

     person = Person.new("山田")
   end   
```

```Python:Python
　　class Person:
     number = 0

     @classmethod
     def classmethod(cls):
       #　処理

     def __init__(self, name):
       self.name = name
     end
     
     person = Person("山田")
   end   
```

```php:PHP
  class Person {
    private static $number;
    private $name;
 
    public function static function classmethod(){
      echo self::$number;
    }

    public function __construct($name){
      $this->name = $name;
    }
    $person = new Person();
  }
```

##9.ゲッターとセッター

```Ruby:Ruby
   def setName(name)
     @name = name
   end
 
   def getName
    @name
   end
   #あるいは
   attr_accessor :name
```
```python:Python
   def __init__(self, name):
        self._name = name

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self, name):
        self.__name = name
```

```php:PHP
  public function setName($name) {
    $this->name = $name;
  }

  public function getName() {
    return $this->name;
  }
```

## 10.最後に
1ブロックをどのように（end/インデント/{})指定するかに個性がある感じですね！
ご一読頂き、ありがとうございました！:relaxed: