これらのトピックについてのより詳しい情報は、コンセプトページを参照してください。
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つのタスクがあります。
クラスLasagnaのexpectedCookTime関数を実装してください。この関数は引数を取らず、ラザニアをオーブンに入れておくべき時間を分単位で返します。
料理本によると、オーブンでの焼き時間は40分です。
<?php
$timer = new Lasagna();
$timer->expectedCookTime()
// => 40
クラスLasagnaのremainingCookTime関数を実装してください。この関数は、ラザニアをオーブンに入れておいた実際の時間を分単位で引数に取り、前のタスクで求めたオーブンでの焼き時間をもとに、ラザニアをあと何分オーブンに入れておく必要があるかを返します。
<?php
$timer = new Lasagna();
$timer->remainingCookTime(30)
// => 10
クラスLasagnaのtotalPreparationTime関数を実装してください。この関数は、ラザニアに重ねた層の数を引数に取り、1層あたり2分かかるものとして、ラザニアの下準備にかかった時間を分単位で返します。
<?php
$timer = new Lasagna();
$timer->totalPreparationTime(3)
// => 6
クラスLasagnaのtotalElapsedTime関数を実装してください。この関数は2つの引数を取ります。1つ目の引数はラザニアに重ねた層の数で、2つ目の引数はラザニアをオーブンに入れておいた時間です。
この関数は、ラザニアの調理に合計で何分かかったかを返します。これは、下準備にかかった時間と、その時点でラザニアをオーブンに入れておいた時間の合計です。
<?php
$timer = new Lasagna();
$timer->totalElapsedTime(3, 20)
// => 26
クラスLasagnaのalarm関数を実装してください。この関数は引数を取らず、ラザニアが食べごろになったことを知らせるメッセージを返します。
<?php
$timer = new Lasagna();
$timer->alarm()
// => "Ding!"