LoginSignup
10
9

More than 5 years have passed since last update.

PHP Ruby 地味に違うところ諸々

Last updated at Posted at 2016-02-26

はじめに

自分はぺちぱーで、今まで業務で触ったのは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
    i += 1

    if i == 5
      next
    end

    puts "ループ#{i}回目"
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
10
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9