사이트 내 전체검색
PHP
Classes and Objects
로빈아빠
https://cmd.kr/php/216 URL이 복사되었습니다.

본문

( 역자주 : Class 문장은 Java의 subset이라 할만큼 동일하다. )

class
클래스는 일련의 변수와 이 변수들을 사용하는 함수들의 모음이다. 클래스는 다음과 같은 형태로 선언된다.

  1
  2 <?php
  3 class Cart {
  4    var $items;  // Items in our shopping cart
  5   
  6    // Add $num articles of $artnr to the cart
  7 
  8    function add_item ($artnr, $num) {
  9        $this->items[$artnr] += $num;
 10    }
 11   
 12    // Take $num articles of $artnr out of the cart
 13 
 14    function remove_item ($artnr, $num) {
 15        if ($this->items[$artnr] > $num) {
 16            $this->items[$artnr] -= $num;
 17            return true;
 18        } else {
 19            return false;
 20        } 
 21    }
 22 }
 23 ?>
 24     
 

이 선언은 Cart라는 이름의 클래스로, 카트안에 들어있는 물품을 위한 한 개의 배열 변수와 cart에 물건을 넣거나 빼는 두 개의 함수로 구성되어 있다.

Classe는 Type으로, 실제 변수들의 청사진이라 할 수 있다. 여러분은 new 연산자를 사용하여 원하는 type의 변수를 생성하여야 한다.

  1
  2  $cart = new Cart;
  3  $cart->add_item("10", 1);
  4   
 

위에 있는 예는 Cart 클래스의 $cart라는 object를 만드는 것이다. 이 object의 add_item() 함수를 호출하여 물품 번호 "10"번의 물품 1개를 카트에 넣는다.

클래스는 다른 클래스로 확장 될 수 있다. 확장 혹은 파생된(extended or derived) 클래스는 base 가 되는 클래스의 모든 변수들과 함수들을 그대로 가제게 되고, 여러분은 여기에 추가로 확장된 선언을 할 수 있다. 이를 위해 "extends"라는 키워드가 사용된다.

  1
  2 class Named_Cart extends Cart {
  3    var $owner;
  4 
  5    function set_owner ($name) {
  6        $this->owner = $name;
  7    }
  8 }
  9   
 

위의 예는 Cart 클래스의 변수와 함수에 $owner 변수와 set_owner() 함수를 추가한 Named_Cart라는 클래스의 선언이다. 여러분은 이름붙은 카트(named cart)를 사용하여 카트의 주인을 설정하고 찾아볼 수 있다. 또한 기존의 일반 카트(normal cart)에 있던 함수도 사용할 수 있다.

  1
  2 $ncart = new Named_Cart;    // Create a named cart
  3 $ncart->set_owner ("kris"); // Name that cart
  4 print $ncart->owner;        // print the cart owners name
  5 $ncart->add_item ("10", 1); // (inherited functionality from cart)
  6   
 

클래스 내부에 있는 함수에서 $this 라는 변수는 자기 자신 object를 의미한다. 여러분은 $this->something 의 형태로 현재 object의 변수나 함수를 사용하여야 한다.

생성자(Constructor)는 해당 클래스의 새 인스턴스(새로 만든 변수라고 생각해 두자)를 만들 때 자동적으로 실행되는 함수를 의미한다. 클래스의 이름과 같은 이름의 함수가 생성자가 된다.

  1
  2 class Auto_Cart extends Cart {
  3    function Auto_Cart () {
  4        $this->add_item ("10", 1);
  5    }
  6 }
  7   
 

위의 예는 Cart 클래스에 물품번호 10번의 물품을 한 개 자동으로 추가하는 생성자를 추가한 Auto_Cart라는 클래스의 선언이다. Auto_Cart는 "new"로 생성된다. 생성자는 또한 인수(argument)를 가질 수 있고, 이 인수들은 default값을 가진 옵션으로 선언 할 수 있다. 이 기능은 매우 유용하게 사용된다.

  1
  2 class Constructor_Cart extends Cart {
  3    function Constructor_Cart ($item = "10", $num = 1) {
  4        $this->add_item ($item, $num);
  5    }
  6 }
  7 
  8 // Shop the same old boring stuff.
  9 
 10 $default_cart  = new Constructor_Cart;
 11 
 12 // Shop for real...
 13 
 14 $different_cart = new Constructor_Cart ("20", 17);
 15

출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=pht&wr_id=51

댓글목록

등록된 댓글이 없습니다.

PHP
871 (15/18P)

Search

Copyright © Cmd 명령어 3.15.239.0