[ php ] Class 사용법 정리 6.부모키워드 > php

본문 바로가기
사이트 내 전체검색

php

[ php ] Class 사용법 정리 6.부모키워드

페이지 정보

작성자 웹지기 댓글 0건 조회 4,566회 작성일 18-09-11 14:38

본문

6.부모키워드  



부모클래스의메쏘드호출


보통부모클래스에서선언된메쏘드를자식클래스에서재정의하는이유는크게두가지가있습니다.


1.부모클래스메쏘드를완전히새롭게정의하기위하여

2.부모클래스메쏘드의기능에새로운기능을추가하기위하여


첫번째기능은부모클래스의메쏘드를무시하고메쏘드에새로운정의를함으로써부모클래스의메쏘드정의를숨기는것입니다.

그러나때로는부모클래스의메쏘드를모두지우는것보다는추가적인기능이필요한경우가있습니다.

이같은경우에는부모클래스의메쏘드와자식클래스에서재정의된메쏘드를모두수행하게될것입니다.

즉,재정의된메쏘드구문내에서부모클래스의메쏘드를호출할수있어야하며필요한기능만추가적으로작성하면될것입니다.

이럴때부모클래스의메쏘드를호출하기위해서사용하는키워드가 parent입니다.자바에서의키워드super와같은역할을하며이것은그메쏘드호출을상위클래스로전달합니다.


부모키워드 parent는 $this 키워드와비슷하게이클래스의부모클래스를나타내는위치지정자입니다.현재클래스의부모클래스를참조해야되는경우에는부모키워드 parent를사용할수있습니다.

class A {

  function example(){

    echo "클래스 A에 정의된 메쏘드 example.\n";

  }

}


class B extends A {

  function example(){

    echo "클래스 B에서 재정의된 메쏘드 example.\n";

    parent::example();

  }

}


$b =new B;


$b->example();


이예의출력결과를보면아래와같이나타날것입니다.


클래스 B에서재정의된메쏘드 example.

클래스 A에정의된메쏘드 example.


앞장범위연산자에서설명한대로키워드 parent 대신에extends다음에기술된부모클래스명을직접사용해도됩니다.


parent::example();  ------>  A::example();


키워드 parent를써야될이유


위의예에서부모클래스를 A가아닌 A1으로부터상속받도록수정하여야한다면아래와같이extends다음에있는부모클래스명을변경하는것으로모든작업은끝나게됩니다.만약 parent::example()가아닌 A::example()라고작성하였었다면이부분도 A1::example()라고수정하여야할것입니다.결국수정할때손이더많이가야하는것이지요.그러니부모클래스에있는메쏘드에접근하는경우라면키워드 parent를이용하는것이소스코드를관리하는데훨씬유리할것입니다.

class B extends A1 {

  function example(){

    echo "클래스 B에서 재정의된 메쏘드 example.\n";

    parent::example();

  }

}


$b =new B;


$b->example();


추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 82건 6 페이지
  • 7 [ php ] 난수생성 rand, mt_rand
  • 함수rand() 난수생성mt_rand() 향상된 난수 생성srand() 난수생성 초기화getrandmax() 가능한 최대 난수값을 표시rand(최대값, 최소값) 또는 rand()mt_rand(최소값, 최대값) 또는 mt_rand()
  • 웹지기 09-06 4973 0 0 댓글 0
  • 5 [ php ] php에서 mysql 버젼 확인 하기
  • $sql = " SELECT version() AS mysql_version ";$row = sql_fetch($sql);echo $row['mysql_version'];$sql = " SHOW VARIABLES LIKE '%VERSION%' ";$result = sql_query($sql);while($row = sql_fetch_array($result)) { print_r2($row);}mysqli 에서는 오류를 내뱉는다.echo mysql_get_ser...
  • 웹지기 08-30 3884 0 0 댓글 0
  • 4 [ php ] [그누보드5] 사용자 게시글 작성시 관리자가 받는 메일에서 이미지 깨짐현상.
  • 사용자 게시글 작성시 관리자가 받는 메일에서 이미지 깨짐현상./bbs/write_update_mail.php<style>.gnu_content img{width:100%}</style>헤더부분에 스타일 추가$wr_content불러오는 부분의 div를<div class="gnu_content" 이런식으로 클래스를 추가해서 메일이 발송되게 해줌모바일에서 메일확인하면 테이블의 width가 정해져 있어서 깨진다�...
  • 웹지기 08-30 4690 0 0 댓글 0
  • 3 [ php ] MS Word docx 파일 생성 라이브러리
  • PHPWord : http://phpword.codeplex.com서버상에 docx 파일을 올리고 이파일에 특정 항목의 값을 post로 넘겨받은후 템플릿 파일에 그값을 채워넣고 워드파일 생성ex파일 : PHPWord/Examples/Template.php [이 게시물은 웹지기님에 의해 2018-08-28 14:20:25 php에서 이동 됨]
  • 웹지기 08-24 6008 0 0 댓글 0
+1
  • 2 [ php ] 마법상수 : magic constants __FILE__, __DIR 등등
  • 마법 상수 ¶PHP는 어떤스크립트에서도 유효한 많은 수의 미리 정의된 상수를 제공한다. 하지만 이 상수의 대부분은 다양한 확장(extension)에 의해 생성된다. 그래서 그 확장이 같이 컴파일되어 유효하거나 동적인 로딩이 되어있어야 이런 상수가 존재하게 된다.여덟 가지 마법 상수가 존재한다. 이 상수들은 어디에서 쓰느냐에 따라 용도가 변경된다. 예를 들면, __LINE__상수의 값은 스크립트의 해당 줄과 관련이 있다. 이 특별한 상수들은 대소문자 구별이 없고 다음과 같다:약간의 "마법&...
  • 웹지기 08-23 4871 0 0 댓글 0
  • 1 [ php ] json 한글 깨지는 현상 해결
  • 배열을 json_encode()해서 json으로 바꿀 때 한글 값이 유니코드로 깨져 들어가는 현상을 해결하는 방법PHP 버젼별로 다르게 구현PHP 5.3 이하function my_json_encode($arr){ //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding ar...
  • 웹지기 08-28 8446 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
5,747
어제
6,915
최대
33,828
전체
8,110,441

그누보드5
Copyright © funyphp.com. All rights reserved.