PHP의 OOPS 개념 | PHP의 객체 지향 프로그래밍
게시 됨: 2020-12-14PHP는 멤버 함수 및 변수에 액세스하는 측면에서 유연한 플랫폼입니다. PHP의 OOP는 클래스, 객체 및 다양한 구성 요소의 연관을 갖는 프로그래밍 스타일을 암시합니다.
PHP는 웹 개발에 사용되는 서버 측 프로그래밍 언어입니다. PHP의 객체 지향 프로그래밍은 개발자가 재사용 가능하고 복잡한 웹 애플리케이션을 구축하는 데 도움이 됩니다. 객체 지향 프로그래밍은 다양한 구성 요소의 연결을 참조하고 상속, 다형성, 캡슐화 및 추상화 개념을 중심으로 하는 프로그래밍 스타일입니다.
OOP는 사용자가 프로그램과 코드를 개발하는 동안 객체에 집중할 수 있지만 절차가 아닌 방식으로 프로그래밍됩니다. OOP는 또한 실생활에 가까운 프로그래밍을 그리는 데 중점을 둡니다. 이 기사에서 우리는 PHP의 핵심 OOP 개념 중 일부를 탐색할 것입니다.
목차
PHP의 주요 OOPS 개념
PHP는 여러 개념을 지원하는 객체 지향 프로그래밍 언어입니다. 그 중 일부는 다음과 같습니다.
클래스 및 개체 – 클래스는 로컬 변수 및 로컬 메서드를 포함하여 프로그래머가 정의한 데이터 유형입니다. 또한 객체의 모음이기도 하지만 객체는 유사한 속성과 동작을 가지고 있습니다. 클래스에 의해 정의된 단일 데이터 구조 인스턴스는 개체입니다. 클래스는 일반적이고 개체는 구체적입니다. 개발자는 개체를 인스턴스화할 수 있지만 클래스는 인스턴스화할 수 없으며 개체는 클래스의 인스턴스입니다.
인터페이스 – PHP의 인터페이스는 개체가 수행할 수 있는 작업에 대한 설명입니다. 모든 인터페이스 키워드로 클래스를 선언하는 것과 같은 방식으로 작성됩니다. 인터페이스에 선언된 메서드는 공용이며 동일한 확장 연산자를 사용하는 클래스처럼 확장할 수 있습니다.

추상화 - 추상화는 프로그래밍 세부 사항 및 사물의 구체적인 구현에서 작업의 유형 및 가용성으로 초점을 이동하는 개념입니다. 추상화는 개발자에게 프로그래밍을 쉽고 일반적으로 만들며 사양을 일반화하는 것과 비슷합니다.
생성자 – 클래스에서 객체 형성이 있을 때마다 자동으로 호출되는 특수 함수입니다.
소멸자 – 객체가 삭제되거나 범위를 벗어날 때마다 자동으로 호출되는 특수 함수입니다.
오버로딩 – 모든 또는 소수의 연산자가 인수의 종류에 따라 다양한 구현을 갖는 특수한 유형의 다형성입니다. 동일한 기능이 여러 구현으로 오버로드될 수 있습니다.
읽기: PHP 프로젝트 아이디어 및 주제
PHP의 원칙과 OOPS 개념
PHP의 주요 객체 지향 프로그래밍 원칙은 다음과 같습니다.
캡슐화 - 이 개념은 바인딩 속성, 메서드를 강조 표시하고 구현 세부 정보를 숨깁니다. 캡슐화의 주요 목적은 소프트웨어 개발 중 복잡성을 제한하고 클래스 개체 사용을 단순화하는 것입니다. 또한 물체의 내부 상태를 보호하고 유지 보수가 용이합니다.
상속 - 이 개념은 클래스 간의 연결과 일치하며 자식 클래스와 부모 클래스 간의 관계를 강조합니다. 또한 자식은 부모가 정의한 메서드를 사용합니다.
상속의 핵심 기능은 재사용성으로 개발자가 데이터베이스에서 데이터 구성 요소를 업데이트, 추가 또는 삭제하는 것과 같은 기본 기능을 제공해야 할 때 매우 유용합니다. 상속은 단일 수준 상속과 다단계 상속으로 구분됩니다.
다형성 (Polymorphism ) - 이 용어는 여러 구현 방식에서 개별 인스턴스를 사용하는 것을 말합니다. 사용자가 세그먼트를 변경하거나 수행 방법을 변경하여 메소드를 정의할 수 있도록 하는 개념입니다. 다형성은 확장 가능한 사용 사례를 수행하는 것과 함께 응용 프로그램을 유지 관리하는 데 중점을 둡니다.
더 읽어보기: PHP 인터뷰 질문
PHP에서 객체 생성
무엇보다도 PHP에서는 사용자가 원하는 대로 동일한 클래스에 여러 객체를 생성할 수 있는 클래스가 생성됩니다. 각 개체는 새 키워드의 도움으로 생성됩니다. 클래스가 생성되면 개발자는 동일한 클래스에 대해 원하는 만큼 개체를 생성할 수 있습니다.
멤버 함수 호출
개체가 생성되면 개발자는 '->' 연산자를 사용하여 클래스의 메서드 함수 및 변수에 액세스할 수 있습니다. 하나의 멤버 함수는 관련 개체의 멤버 변수만 처리할 수 있습니다. 멤버 함수를 호출하여 세 책의 가격과 제목을 설정하는 방법을 보여주는 예를 살펴보겠습니다.
$physics->setTitle( "고교용 물리학" );
$chemistry->setTitle( "고급 화학" );
$maths->setTitle( "대수학" );
$physics->setPrice( 10 );
$chemistry->setPrice( 15 );
$maths->setPrice( 7 );
값 집합을 얻으려면 다른 멤버 함수를 호출할 수 있습니다.

$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();
$physics->getPrice();
$화학->getPrice();
$maths->getPrice();
그러면 다음과 같은 결과가 생성됩니다.
고등학교 물리학
고급 화학
대수학
10
15
7
추상 클래스 생성
<?php
추상 클래스 DBCommonMethods
{
개인 $ 호스트;
개인 $db;
개인 $uid;
개인 $비밀번호;
공개 함수 __construct($host, $db, $uid, $password)
{
$이->호스트 = $호스트;
$this->db = $db;
$this->uid = $uid;
$this->password = $password;
}
}
?>
여기,
- "추상 클래스"는 객체 생성에 직접 사용할 수 없는 클래스를 의미합니다.
- "$host,$db ..."는 다양한 구현에서 공통적인 클래스 변수입니다.
인터페이스 생성
이제 다양한 데이터베이스 변수를 구현하기 위한 표준 메서드가 포함된 인터페이스를 생성해 보겠습니다.
<?php
인터페이스 DB인터페이스
{
공개 함수 db_connect();
공개 함수 삽입($data);
공개 함수 읽기($where);
공개 함수 업데이트($where);
공개 함수 삭제($where);
}
?>
여기,
- "인터페이스"는 인터페이스를 생성하기 위한 키워드입니다.
- "공공 기능"은 구현하는 표준 방법입니다.
DBCommon Methods 클래스와 인터페이스를 확장할 수 있는 구체적인 클래스를 생성해 보겠습니다.
<?php 클래스 MySQLDriver 확장
DBCommonMethods는 DBInterface를 구현합니다. { public function __construct($host, $db, $uid, $password)
{
부모::__construct($host, $db, $uid, $password); }
public function db_connect() { //연결 코드는 여기에 갑니다 }
public function delete($where) { //삭제 코드는 여기에 갑니다 }
public function insert($data) { //여기에 코드 삽입 }
public function read($where) { //여기에 코드 읽기 }
public function update($where) { //업데이트 코드는 여기에 갑니다 }
} ?>
함수 재정의
자식 클래스의 함수는 부모 클래스와 동일한 이름 내에서 재정의됩니다. 자식 클래스에서 개발자는 부모 클래스에서 상속된 함수 정의를 수정할 수 있습니다.
함수 getPrice() {
echo $this->price . "<br/>";
$ this->price를 반환합니다.
}
함수 getTitle(){
echo $this->title . "<br/>";
$this->title을 반환합니다.

}
시계
PHP의 각 메서드와 속성에는 private, public, protected와 같은 키워드로 선언된 가시성이 있으며 아래에 설명되어 있습니다.
- 공개 - 외부의 모든 사용자가 메서드 및 속성에 액세스할 수 있습니다.
- 비공개 - 자신을 제외한 모든 사용자에게 액세스 권한을 부여하지 않습니다.
- Protected- 자식 클래스와 자신만 메서드와 속성에 액세스할 수 있습니다.
세계 최고의 대학 에서 소프트웨어 엔지니어링 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
PHP에서 객체 지향 프로그래밍의 기본 개념은 이 기사에서 언급됩니다.
전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 이 프로그램은 작업 전문가를 위해 설계되었으며 500 시간 이상의 엄격한 교육, 9 개 이상의 프로젝트, 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
