>백엔드 개발 >PHP 튜토리얼 >PHP oop의 기능은 무엇입니까? PHP OOP 사고의 세 가지 주요 특징 소개

PHP oop의 기능은 무엇입니까? PHP OOP 사고의 세 가지 주요 특징 소개

不言
不言원래의
2018-07-25 14:10:307073검색

PHP oop 사고의 세 가지 주요 특징은 캡슐화, 상속 및 다형성입니다. 여기서는 php opp 사고에 대한 자세한 이해를 제공합니다. 그런 다음 opp 사고의 세 가지 주요 특징과 php opp 아이디어를 자세히 살펴보겠습니다. .
Encapsulation

캡슐화는 개체의 속성과 동작을 독립적인 단위로 결합하는 것입니다.
클래스를 캡슐화하려면 두 단계가 필요합니다. 첫 번째 단계는 클래스를 사유화하는 것입니다. 두 번째 단계는 set을 사용하여 값을 읽고 할당하는 것입니다.
클래스의 구현 세부 사항을 숨기고 로직을 쉽게 추가할 수 있다는 것이 장점입니다. 제어 및 제한 속성에 대한 불합리한 작업을 쉽게 수정하여 코드의 유지 관리 가능성을 높일 수 있습니다.

__get 및 __set
일반적으로 말하면 수업을 비공개로 설정하는 것이 더 현실적입니다.
값을 얻고 적용하는 데 사전 정의된 두 가지 함수가 사용됩니다.
__get 얻은 값은 일반적으로 도메인의 값입니다.
__set 설정된 값은 일반적으로 도메인의 값입니다.
__call 객체에 존재하지 않는 메서드를 호출하면 call() 메서드가 오류가 발생합니다. 이 상황을 처리하는 데 사용됩니다.

정적 속성 및 메서드
정적 메서드를 선언하는 정적 키워드
static 정적 변수는 모든 클래스에서 공유할 수 있는 정적 변수를 생성합니다. 즉, 정적 멤버는 "초기화된 정적 섹션"에 배치됩니다. 클래스가 처음 로드될 때 배치되므로 힙 메모리의 모든 객체에서 공유할 수 있습니다.
사용 방법: self::$static 속성, self::static 방법

static function p(){
echo self::$country;
echo self::PI;//访问常量
//echo $this->name;在静态方法中只能操作静态属性
//self::p();
}

외부 호출: 클래스: : $static 속성, 클래스::정적 메서드

const 키워드: 상수를 생성하는 데 사용됩니다. 상수는 변경할 수 없는 유일한 규칙입니다.
const CONSTANT = '상수 값'; echo self::CONSTANT; //내부 클래스 액세스
echo ClassName::CONSTANT;//외부 클래스 액세스

Inheritance클래스 B의 객체는 클래스 A의 모든 속성과 동작을 가집니다. 이를 B의 클래스 상속이라고 합니다. 에이.
클래스가 여러 클래스에서 속성과 서비스를 상속하는 경우 이를 다중 상속이라고 합니다. 일반적으로 상속 클래스를 하위 클래스라고 하며 상속된 클래스는 상위 클래스입니다. PHP에서는 단일 상속만 가능하지만 상위 클래스도 가능합니다. 클래스 상속은 가능하지만 하위 클래스는 하나의 상위 클래스만 가질 수 있지만 관련 상속은 허용되며 상속을 통해 클래스 정의가 축소될 수 있습니다.
extende는 상속 관계를 선언합니다
구문 형식: 클래스 B는 A를 확장합니다. 이 예는 B가 A를 상속함을 나타냅니다.
클래스의 외부 액세스는 하위 클래스에 유효합니다.
하위 클래스와 상위 클래스의 속성 및 메서드
하위 클래스는 모든 내용을 상속합니다. 그러나 하위 클래스에 새로 추가된 속성과 메서드는 하위 클래스에 정의된 상위 클래스와 동일한 이름을 가진 속성에 직접 액세스할 수 없습니다. 상위 클래스 속성 중 동일한 이름을 가진 메서드는 또한 상위 클래스 메서드의 재정의입니다

재정의된 메서드
하위 클래스에서 parent를 사용하여 상위 클래스

부모의 재정의된 속성과 메서드에 액세스합니다. :__construce();

parent::$name;
parent: :fun();

부모 클래스의 원래 속성을 덮어씁니다
clone 복제 객체 구문 형식 $c=clone $p $c clone 객체 $p 출력 echo $c->name;

객체 비교
= ==두 개의 비교 연산자.

== 두 개체의 내용을 비교하는 것입니다.

===는 비교 대상의 핸들, 즉 참조 주소입니다.

instanceof 연산자는 객체가 특정 클래스에 속하는지 확인하는 데 사용됩니다. 해당 유형이 해당 클래스에 속하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
__clone() 원본 객체를 복제한 후에는 __clone()에서 원본을 다시 작성해야 합니다. 속성 및 메서드

function __clone(){
$this->name="我是一个克隆人";
}

final은 클래스가 최종 버전임을 의미하며, 이는 하위 클래스에서 해당 클래스를 호출할 수 없음을 의미합니다.

다형성

다형성 이는 상위 클래스에 정의된 속성이나 동작이 하위 클래스에 상속된 후 다른 데이터 유형을 가지거나 다른 동작을 나타낼 수 있음을 의미합니다. 이를 통해 동일한 속성이나 동작이 상위 클래스와 다양한 하위 클래스에서 서로 다른 의미를 가질 수 있습니다. 즉, 하위 클래스와 상위 클래스에서 동일한 메서드를 실행한 결과가 다릅니다.

class A {
function info(){
echo “A INFO”;
}
}
class B extends A {
function info(){
echo “B INFO”;
}
}
class C extends A {
function info(){
echo “C INFO”;
}
}
function printinfo($obj){
function printinfo(A $obj){
if($obj instanceof A)
$obj->info();
$obj->info();
}
}
$a=new A(); $b=new B(); $c=new C();
printinfo($a); //输出A INFO
printinfo($b); //输出B INFO
printinfo($c); //输出C INFO

추상 메서드 및 추상 클래스

추상 메서드는 하위 클래스의 템플릿으로 사용됩니다.

abstract class Person{
public $name;
abstract function getInfo();
}

추상 클래스는 과장될 수 없습니다. 추상 클래스에는 추상 메서드가 있어야 합니다. 그러나 동적 함수는 추상 클래스에서 정의할 수 있습니다.
인터페이스

클래스가 인터페이스를 상속하는 경우 인터페이스의 모든 메서드를 포함해야 합니다. 인터페이스는 상수만 선언할 수 있습니다. 그렇지 않으면 인터페이스가 여러 인터페이스에서 상속될 수 없습니다. :


interface PCI{
const TYPE="PCI";
//public $name; error
function start();
function stop();
}
接口中的方法可以声明为static
interface A{ function a();}
interface B{ function b();}
interface C extends A{ function c();}
class D implements B,C{
function a(){}
function b(){}
function c(){}
}

관련 추천:

PHP OPP 메커니즘 및 패턴 소개(추상 클래스, 인터페이스 및 계약 프로그래밍)_php 예제

위 내용은 PHP oop의 기능은 무엇입니까? PHP OOP 사고의 세 가지 주요 특징 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.