The PHP Practitioner 05 - Class
29 Dec 2019 | Laracast PHPLaracasts - The PHP Practitioner 강의를 듣고 정리한 포스팅 입니다.
1. Class의 기본 구성
property와 method로 구성되어있음.
- 생성자 메서드:
__construct
: Automatically triggered on instantiation $this
: 인스턴스 객체$this->프로퍼티명 = 변수
: 객체의 프로퍼티에 변수(데이터) 할당
<?php
class Task {
// property
protected $description;
protected $completed = false;
// method
public function __construct($description)
{
// Automatically triggered on instantiation
// current instance(object)에
// description(property)에 $description을 할당
$this->description = $description;
}
public function complete()
{
$this->completed = true;
}
public function isComplete()
{
return $this->completed;
}
}
2. 클래스 호출
객체 생성 및 프로퍼티 할당. 배열로 여러개의 인스턴스를 한꺼번에 생성할 수 도 있음.
$task = new Task('Go to the store'); // a new task object
$task-> complete(); // complete the task
var_dump($task-> isComplete());
//var_dump($task);
$tasks = [
new Task('Go to the store'),
new Task('Finish my screencast'),
new Task('Clean my room')
];
var_dump($tasks);
3. 응용
HTML과 결합하여 사용할 경우
- 프로퍼티를
protected
로 정의 할 경우에는 외부로의 호출이 불가능함. => 프로퍼티를public
으로 변경
<ul>
<?php foreach ($tasks as $task) : ?>
<li><?= $task->description; ?></li>
<?php endforeach ?>
</ul>
complete된 task는 <strike></strike>
옵션 적용
$tasks = [
new Task('Go to the store'),
new Task('Finish my screencast'),
new Task('Clean my room')
];
$tasks[0]->complete();
<ul>
<?php foreach ($tasks as $task) : ?>
<li>
<?php if ($task->completed) : ?>
<strike><?= $task->description ?></strike>
<?php else: ?>
<?= $task->description; ?>
<?php endif; ?>
</li>
<?php endforeach ?>
</ul>
Comments