トラック
/
PHP
PHP
/
演習
/
ルシアンの絶品ラザニア
ルシアンの絶品ラザニア

ルシアンの絶品ラザニア

学習演習

はじめに

基本

これらのトピックについてのより詳しい情報は、コンセプトページを参照してください。

一般的な構文

PHPの開始タグ<?phpは、PHPコードの始まりを表します。 すべての文は、命令を区切るために;で終わる必要があります。

<?php

$message = "Success!"; // Statement correctly ends with `;`
$message = "I fail." // PHP Parse error: syntax error, [...]

読みやすさのために、すべてのコード例ではPHPの開始タグ<?phpを省略しています。

コメント

1行コメントは//で始まります。

// Single line comment

値と変数

代入演算子=を使うと、値を変数に代入できます。 変数名はドル記号$で始まる必要があり、命名規則に従います。

$count = 1; // Assign value of 1

// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";

関数とメソッド

値や変数は、関数に渡すことができます。 関数の引数は、渡された値を保持する新しい変数になります。 関数は、キーワードreturnを使って任意の値を返すことができます。

function window_height($height)
{
    return $height + 10;
}

window_height(100);
// => 110

クラスとそのインスタンスの中にある関数は、メソッドと呼ばれます。 メソッドを呼び出すには、名前の前にインスタンスと->を書きます。 メソッドは、現在のインスタンスを指す特別な変数$thisにアクセスできます。

<?php

class Calculator {
    public function sub($x, $y)
    {
        return $this->add($x, -$y); // Calls the method add() of the current instance
    }

    public function add($x, $y)
    {
        return $x + $y;
    }
}

$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2

説明

この演習では、お気に入りの料理本をもとに、最高のラザニアを作るためのコードを書いていきます。

ラザニアの調理にかかる時間に関する、5つのタスクがあります。

1. オーブンでの焼き時間(分)を定義する

クラスLasagnaのexpectedCookTime関数を実装してください。この関数は引数を取らず、ラザニアをオーブンに入れておくべき時間を分単位で返します。 料理本によると、オーブンでの焼き時間は40分です。

<?php
$timer = new Lasagna();
$timer->expectedCookTime()
// => 40

2. 残りの焼き時間(分)を計算する

クラスLasagnaのremainingCookTime関数を実装してください。この関数は、ラザニアをオーブンに入れておいた実際の時間を分単位で引数に取り、前のタスクで求めたオーブンでの焼き時間をもとに、ラザニアをあと何分オーブンに入れておく必要があるかを返します。

<?php
$timer = new Lasagna();
$timer->remainingCookTime(30)
// => 10

3. 下準備にかかる時間(分)を計算する

クラスLasagnaのtotalPreparationTime関数を実装してください。この関数は、ラザニアに重ねた層の数を引数に取り、1層あたり2分かかるものとして、ラザニアの下準備にかかった時間を分単位で返します。

<?php
$timer = new Lasagna();
$timer->totalPreparationTime(3)
// => 6

4. 合計の作業時間(分)を計算する

クラスLasagnaのtotalElapsedTime関数を実装してください。この関数は2つの引数を取ります。1つ目の引数はラザニアに重ねた層の数で、2つ目の引数はラザニアをオーブンに入れておいた時間です。 この関数は、ラザニアの調理に合計で何分かかったかを返します。これは、下準備にかかった時間と、その時点でラザニアをオーブンに入れておいた時間の合計です。

<?php
$timer = new Lasagna();
$timer->totalElapsedTime(3, 20)
// => 26

5. ラザニアができたことを知らせる通知を作成する

クラスLasagnaのalarm関数を実装してください。この関数は引数を取らず、ラザニアが食べごろになったことを知らせるメッセージを返します。

<?php
$timer = new Lasagna();
$timer->alarm()
// => "Ding!"
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
PHP Exercism

ルシアンの絶品ラザニアを始める準備はできましたか?

Exercismに登録すれば、11個のコンセプト122個の演習、そして本物の人間によるメンタリングとともに、PHPを学んでマスターできます。すべて無料です。