RubyとPHPの対応 〜超超入門〜


文字列の表示

自動で改行がされる「Ruby:puts」に対し、「PHP:echo」は改行に記載が必要となる。

# Ruby
puts 'Hello,World'
// PHP
// セミコロンがないとエラーが起きる
echo 'Hello,World';
//echoは改行されないため複数回echoが出力される場合は,<br>タグにより改行が必要
echo 'Hello,world'.'<br>'

変数の宣言

変数の宣言の際に、PHPは変数名の頭に「$」が必要となる。

# Ruby
name = 'yamada'
// PHP
// 変数名の前に「$」が必要(呼び出しの際も必要)
$name = 'yamada';

文字列の連結

# Ruby
lesson = "Ruby"
language = "言語"
puts lesson+language
puts lesson.concat(language)
// PHP
// 文字列の連結に「.」が必要
$lesson = 'PHP;
$language = '言語';
echo $lesson.'言語';
echo $lesson.$language;
  => PHP学習
$lesson. = '入門';
  => PHP入門

変数の展開

PHPでは{}内部で変数の計算はできない。

# Ruby
name = '田中'
puts = "こんにちは、#{name}さん"
  => こんにちは、田中さん
// PHP
$name = '田中';
echo "こんにちは、{$name}さん";
  => こんにちは、田中さん

if文

# Ruby
// PHP
if 第一条件式
  # 第一条件trueの場合の処理
elsif 第二条件式 
  # 第二条件trueの場合の処理
else
  # falseの場合の処理
end
if(第一条件式){
  // 第一条件式trueの場合の処理
}elseif(第二条件式){
  // 第二条件式treeの場合の処理
}else{
  // falseの場合の処理
}

case文/switch文

# Ruby
case 変数
when 値1
  値1の時の処理
when 値2
  値2の時の処理
when 値3
  値3の時の処理
else
  いずれにも一致しなかった時の処理
end

// PHP
switch(変数){
  case 値1:
    //変数 == 値1の時の処理
    break; 
  case 値2:
    //変数 == 値1の時の処理
    break; 
     ・
     ・
     ・
  default:
    //いずれのcaseにも一致しなかった場合の処理
    break;
}

配列の作成

PHPのarray()の宣言は古いVerのPHPでの仕様となる
```

Ruby

fruits = ['りんご','バナナ','みかん']
// PHP
fruits = array('りんご','バナナ','みかん');
fruits = ['りんご','バナナ','みかん'];
```

連想配列の作成

#Ruby
user = {"name":"田中","age":24,"gender":"男"}
puts user["name"]
  => 田中
// PHP
$user = array('name'=>'田中','age'=>24,'gender'=>'男');
$user = ['name'=>'田中','age'=>24,'gender'=>'男'];
echo $user['name']
  => 田中

for文

# Ruby
for i..100  # iをいくつまで繰り返すか
  # 繰り返す処理
  i+1   # iの更新条件
end
// PHP
for($i = 1;$i <= 100;$i++){  //for(変数の初期値;繰り返し条件;変数の更新条件){
  // 繰り返す処理
}

while文

# Ruby
i = 1
while(i <= 100)
  puts i
  i += 1
end

// PHP
$i = 1;
while($i <= 100){
  echo $i;
  $i += 1;
}

繰り返し文の終了

該当箇所のループを終了させる文が「Ruby:next」に対し、「PHP:continue」となる。

# Ruby
break  //繰り返しのブロック自体の処理の終了
next   //該当の処理の終了

// PHP
break  //繰り返しのブロック自体のブロックの処理の終了
continue  //該当の処理の終了

foreach文

# Ruby
配列.each do |値変数|
  # 値変数の処理
end

//PHP
foreach(配列 as 値変数){
  // 値変数の処理
}
foreach(連想配列 as キー変数 => 値変数){
  // キー変数、値変数の処理
}

関数の作成

# Ruby
def 関数名(引数)
  #  実行する処理
end

// PHP
function 関数名(引数){
  // 実行する処理;
}