이러한 주제에 대해 더 자세히 알아보려면 개념 페이지를 확인해요.
PHP 여는 태그 <?php는 PHP 코드의 시작을 나타내요.
모든 문은 명령을 구분하기 위해 ;로 끝나야 해요.
<?php
$message = "Success!"; // Statement correctly ends with `;`
$message = "I fail." // PHP Parse error: syntax error, [...]
읽기 쉽도록, 모든 코드 예제에서는 PHP 여는 태그 <?php를 생략해요.
한 줄 주석은 //로 시작해요.
// 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
이 연습 문제에서는 좋아하는 요리책에 나오는 근사한 라자냐를 만드는 데 도움이 되는 코드를 작성해 봐요.
라자냐를 조리하는 데 드는 시간과 관련된 다섯 개의 과제가 있어요.
Lasagna 클래스에 expectedCookTime 함수를 구현해요. 이 함수는 인자를 받지 않고, 라자냐를 오븐에 몇 분 동안 넣어 두어야 하는지 반환해요.
요리책에 따르면 예상 오븐 조리 시간은 40분이에요.
<?php
$timer = new Lasagna();
$timer->expectedCookTime()
// => 40
Lasagna 클래스에 remainingCookTime 함수를 구현해요. 이 함수는 라자냐가 지금까지 오븐에 있던 실제 시간(분)을 인자로 받고, 이전 과제에서 구한 예상 오븐 조리 시간을 기준으로 라자냐가 오븐에 몇 분 더 있어야 하는지 반환해요.
<?php
$timer = new Lasagna();
$timer->remainingCookTime(30)
// => 10
Lasagna 클래스에 totalPreparationTime 함수를 구현해요. 이 함수는 라자냐에 넣은 층의 개수를 인자로 받고, 층 하나를 준비하는 데 2분이 걸린다고 가정했을 때 라자냐를 준비하는 데 몇 분이 걸렸는지 반환해요.
<?php
$timer = new Lasagna();
$timer->totalPreparationTime(3)
// => 6
Lasagna 클래스에 totalElapsedTime 함수를 구현해요. 이 함수는 두 개의 인자를 받아요. 첫 번째 인자는 라자냐에 넣은 층의 개수이고, 두 번째 인자는 라자냐가 오븐에 있던 시간(분)이에요.
이 함수는 라자냐를 조리하는 데 총 몇 분을 들였는지 반환해야 해요. 이는 준비 시간(분)과 그 순간까지 라자냐가 오븐에 있던 시간(분)을 더한 값이에요.
<?php
$timer = new Lasagna();
$timer->totalElapsedTime(3, 20)
// => 26
Lasagna 클래스에 alarm 함수를 구현해요. 이 함수는 인자를 받지 않고, 라자냐를 먹을 준비가 되었다는 메시지를 반환해요.
<?php
$timer = new Lasagna();
$timer->alarm()
// => "Ding!"
Exercism에 가입하고 PHP 트랙을 개념 11개연습 문제 122개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.