🦔

ChatGPTを使ってRubyで書いたコードをPHPに書き換えてみる

2023/02/28に公開

現在、PHPを習得中です。PHPでどう書けばよいか困る場面に遭遇することがよくあるので、書き慣れているRubyで書いたコードを流行りのChatGPTに書き換えてもらえば、構文等の調べる手間が減りそう、となったので試してみました。

どんなコードを書いたか

csvを読み込んで、headerごとの値を出力するといったものです。

実際に書いたRubyのコードは以下のものです。

require 'csv'

sample = CSV.read("sample.csv", headers: true)

sample.each do |row|
	p row["id"]
	p row["name"]
	p row["age"]
end

用意したsample.csv

id,name,age
1,Yamada,20
2,Tanaka,25

結果

1
Yamada
20
2
Tanaka
25

ChatGPTに書き換えてもらう

Rubyで書いたコードをChatGPTでPHPに書き換えてもらいます。Rubyのコードを貼り付けて、「PHPで書いて」と書いただけです。

ChatGPTで出力されたPHPのコードは以下のものです。
(sample.csvはRubyで書いたのと同じものを使います)

<?PHP

$rows = array();
$header = null;

if (($handle = fopen("sample.csv", "r")) !== false) {
    while (($data = fgetcsv($handle)) !== false) {
        if ($header === null) {
            $header = $data;
            continue;
        }

        $rows[] = array_combine($header, $data);
    }

    fclose($handle);
}

foreach ($rows as $row) {
    echo $row['id'] . "\n";
    echo $row['name'] . "\n";
    echo $row['age'] . "\n";
}

?>

結果

1
Yamada
20
2
Tanaka
25

Rubyで書いたものと同じ結果が出ていることを確認できました。

まとめ

Rubyで書いたコードをChatGPTに貼り付けて、「PHPで書いて」と書くだけで数秒のうちにPHPのコードを生成したくれてたのが驚きです。

実際にこのような運用をChatGPTでしたのが初めてなので、どこまでこの方法ができるかまではわかりませんが、不慣れな言語を用いて手元でコードを動かしてみたいといった時に、この方法を取ればその言語での実装ヒントを得られるかもしれません。

Discussion