해리의 데브로그

The PHP Practitioner 05 - Class

|

Laracasts - 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