이 기사의 목표:
1. PHP에서 추상 클래스의 정의를 이해합니다.
2. PHP에서 추상 클래스의 역할을 이해합니다.
3. PHP에서 추상 클래스의 사용 시나리오를 이해합니다.
4. PHP에서 추상 클래스 구현
앞선 일관된 생각을 계속 이어가면서 3W1H 방식으로 학습할 테니 먼저 이해해 봅시다
(1) PHP에서 추상 클래스의 정의를 이해합니다(What)
추상 클래스 은 자주 사용됩니다. 문제 영역의 분석 및 설계를 나타내는 abstract개념은 다르게 보이지만 본질적으로 동일한 일련의 특정 개념에 대한 abstract입니다. 일반적으로 프로그래밍 문에서 추상으로 수정되는 클래스는 추상 클래스입니다.
과 인터페이스의 차이점은 인터페이스의 메서드는 구현되지 않고 단순히 정의되지만 추상 클래스의 메서드는 구현할 수 있다는 것입니다.
(2) PHP에서 추상 클래스의 역할을 이해합니다(이유)
PHP의 클래스 중 많은 클래스가 지속적으로 재작성됩니다. 이때 추상 클래스를 어떻게 사용할 수 있나요? 즉, 먼저 공개 클래스를 작성한 다음 이를 인스턴스화한 후 반복적으로 호출할 수 있습니다. 이렇게 하면 코드의 재사용성이 향상될 수 있습니다.
(3) PHP에서 추상 클래스의 사용 시나리오 이해(Where)
1 코드의 많은 클래스가 유사하거나 공통된 메서드를 사용하는 경우 동일한 것을 사용할 수 있습니다. 또는 일반적인 메소드가 추출되어 추상 클래스로 캡슐화됩니다.
추상 클래스는 인터페이스와 다소 유사합니다. 모든 인터페이스에 추상 메서드가 있다는 점을 제외하면 인터페이스는 특별한 추상 클래스라고 할 수 있지만(소위 추상이라는 것은 특정 구현이 없음을 의미함) 일부 메서드는 추상입니다. 클래스는 구현 기능을 가질 수 있습니다.
(4), PHP에서 추상 클래스의 구체적인 구현을 마스터합니다(방법)
요약:
1 추상 클래스의 정의는 추상 클래스와 같이 정의됩니다. 클래스 이름 {}
2. 추상 클래스 메서드의 정의도 추상 공용 함수 메서드 이름()과 같이 정의됩니다.{}
3. 추상 클래스는 인스턴스화할 수 없습니다.
4. , Extensions
키워드를 사용하세요. 5. 추상 클래스의 하위 클래스는 추상 클래스에 구현되지 않은 모든 메서드를 구현해야 합니다. 즉, 추상 클래스의 모든 추상 메서드를 다시 작성해야 합니다. 추상 클래스는 추상 클래스에 구현된 메소드를 구현하지 않으며, 이러한 메소드도 호출할 수 있습니다. 실제로 상속을 결합하면 이를 매우 잘 이해할 수 있습니다.
이제 모든 요약은 연습을 통해 얻어집니다. 연습을 통해 요약을 시연하면 이해를 촉진하고 모든 사람이 요약을 통해 더 명확하고 직관적으로 이해할 수 있습니다. (5), 특정 코드
사례 1,
연습 목표:
1 . 추상 클래스의 정의는 추상 클래스 클래스 이름과 같이 추상으로 정의됩니다. {}
2. 추상 클래스 메서드의 정의도 추상 공용 함수 메서드 이름()과 같이 추상으로 정의됩니다. 코드는 다음과 같습니다:
<?php abstract class Animal{ abstract public function eat();//抽象方法 //呼吸 public function breath(){ //所有动物的呼吸方法都是一样的,就不需要使用多态了 echo "呼吸<br/>"; } } ?>Case 2,
실습 목표: 1. 추상 클래스는 다음과 같습니다. 인스턴스화할 수 없는
의 구체적인 코드는 다음과 같습니다.
<?php abstract class Animal{ abstract public function eat();//抽象方法 //呼吸 public function breath(){ //所有动物的呼吸方法都是一样的,就不需要使用多态了 echo "呼吸<br/>"; } } $animal = new Animal(); ?>
실행 결과는 다음과 같습니다.
Fatal error: Uncaught Error: Cannot instantiate abstract class Animal in D:\E-class\class-code\classing\index.php:10 Stack trace: #0 {main} thrown in D:\E-class\class-code\classing\index.php on line 10
案例四、
实践目标:
1、要继承一个抽象类,通过关键字extends
2、抽象类的子类必须要实现抽象类中未实现的所有方法,也就是说要重写抽象类中所有abstract的方法
具体代码如下:
<?php abstract class Animal{ abstract public function eat();//抽象方法 //呼吸 public function breath(){ //所有动物的呼吸方法都是一样的,就不需要使用多态了 echo "呼吸<br/>"; } } //定义猴子 class Monkey extends Animal{ } ?>
如果Monkey类继承了抽象类,但不实现里面的abstract方法,那么运行结果为:
Fatal error: Class Monkey contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Animal::eat) in D:\E-class\class-code\classing\index.php on line 13
接下来我们来实现abstract方法
具体代码如下:
<?php abstract class Animal{ abstract public function eat();//抽象方法 //呼吸 public function breath(){ //所有动物的呼吸方法都是一样的,就不需要使用多态了 echo "呼吸<br/>"; } } //定义猴子 class Monkey extends Animal{ //实现抽象类中的抽象方法 public function eat(){ echo "我是猴子类中的eat方法<br/>"; } } $monkey = new Monkey(); $monkey->eat(); ?>
运行结果如下:
我是猴子类中的eat方法
案例五、
实践目标:
1、抽象类的子类虽然没有实现抽象类中的已经实现的方法,一样可以调用这些方法,其实结合继承我们可以很好理解这点
具体代码如下:
<?php abstract class Animal{ abstract public function eat();//抽象方法 //呼吸 public function breath(){ //所有动物的呼吸方法都是一样的,就不需要使用多态了 echo "抽象类中的呼吸方法<br/>"; } } //定义猴子 class Monkey extends Animal{ //实现抽象类中的抽象方法 public function eat(){ echo "我是猴子类中的eat<br/>"; } } $monkey = new Monkey(); $monkey->eat(); $monkey->breath(); ?>
运行结果如下:
我是猴子类中的eat
抽象类中的呼吸方法
(六)、学以致用
问题:将以下真实场景,用抽象类还原出来
小芳放学回到家中,一进家门,只见心爱的小狗“小爱”马上就对主人摇起了尾巴,小芳笑了笑,走过去,抱起了小狗,最后,小芳和小狗亲了一口
思路分析:
1、对象分析:学生,小狗
2、对象属性分析:结合(现实世界+具体场景)
学生:名称
狗:名称
3、对象方法分析:结合(现实世界+具体场景)
学生:
(1)、放学
(2)、回到家中
(3)、走路
(4)、看
(5)、笑
(6)、抱东西
(7)、亲嘴
狗:
(1)、看
(2)、摇尾巴
(3)、亲嘴
4、我们发现这2个对象都有相似的方法,看,亲嘴,所以我们可以把它们封装到抽象类中,并且这2个方法不需要子类去重写,因为都是一样的
具体代码如下:
<?php abstract class Animal{ //看 public function look($obj){ //所有动物的呼吸方法都是一样的,就不需要使用多态了 echo "看见了".$obj->name."<br/>"; } //亲嘴 public function kiss($fromobj,$toobj){ echo $fromobj->name."亲了".$toobj->name."一口<br/>"; } } //学生 class Student extends Animal{ public $name = ""; public function __construct( $name ){ $this->name = $name; } // 1、放学 public function offschool(){ echo $this->name."放学了<br/>"; } //回家 public function goHome(){ echo $this->name."回到家中<br/>"; } // 2、走路 public function walk(){ echo $this->name."走了过去<br/>"; } // 3、看 // 4、笑 public function smile(){ echo $this->name."微笑了<br/>"; } // 5、抱东西 public function hug($obj){ echo $this->name."抱起了".$obj->name."<br/>"; } // 6、亲嘴 } //狗 class Dog extends Animal{ public $name = ""; public function __construct( $name ){ $this->name = $name; } //1、看 //2、摇尾巴 public function wagTail(){ echo $this->name."摇了尾巴<br/>"; } //3、亲嘴 } //创建对象 $xf = new Student("小芳"); $dog = new Dog("小爱"); //小芳放学了 $xf->offschool(); //小芳放学回到家中,一进家门,只见心爱的小狗“小爱”马上就对主人摇起了尾巴,小芳笑了笑,走过去, //抱起了小狗,最后,小芳和小狗亲了一口 //小芳回答家中 $xf->goHome(); //小芳看见小狗 $xf->look($dog); //小狗摇尾巴 $dog->wagTail(); //小芳笑了笑 $xf->smile(); //小芳走过去 $xf->walk(); //抱起小狗 $xf->hug($dog); //小芳亲了小狗 $xf->kiss($xf,$dog); //小狗也亲了小芳 $dog->kiss($dog,$xf); ?>
运行结果为:
샤오팡은 학교를 떠났습니다
샤오팡이 집에 돌아와
샤오아이를 보고
샤오아이가 꼬리를 흔들고
샤오팡이 웃는다
샤오팡이 걸어온다
샤오팡이 샤오아이를 주웠어요
샤오아이 Fang이 Xiao Ai에게 키스했습니다
Xiao Ai가 Xiao Fang에게 키스했습니다
(7) 요약
1. 이 기사에서는 주로 PHP의 추상 클래스 정의와 기능 및 구체적인 구현에 대해 설명합니다
이 기사가 도움이 되기를 바랍니다. 도움이 좀 됐어요, 고마워요! ! !
위 내용은 PHP 객체지향 추상 클래스에 대한 자세한 설명(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

세션 고정 공격을 방지하는 효과적인 방법은 다음과 같습니다. 1. 사용자 로그인 한 후 세션 ID 재생; 2. 보안 세션 ID 생성 알고리즘을 사용하십시오. 3. 세션 시간 초과 메커니즘을 구현하십시오. 4. HTTPS를 사용한 세션 데이터를 암호화합니다. 이러한 조치는 세션 고정 공격에 직면 할 때 응용 프로그램이 파괴 할 수 없도록 할 수 있습니다.

서버 측 세션 스토리지가없는 토큰에 저장되는 토큰 기반 인증 시스템 인 JSONWEBTOKENS (JWT)를 사용하여 세션없는 인증 구현을 수행 할 수 있습니다. 1) JWT를 사용하여 토큰을 생성하고 검증하십시오. 2) HTTPS가 토큰이 가로 채지 못하도록하는 데 사용되도록, 3) 클라이언트 측의 토큰을 안전하게 저장, 4) 변조 방지를 방지하기 위해 서버 측의 토큰을 확인하기 위해 단기 접근 메커니즘 및 장기 상쾌한 토큰을 구현하십시오.

PHP 세션의 보안 위험에는 주로 세션 납치, 세션 고정, 세션 예측 및 세션 중독이 포함됩니다. 1. HTTPS를 사용하고 쿠키를 보호하여 세션 납치를 방지 할 수 있습니다. 2. 사용자가 로그인하기 전에 세션 ID를 재생하여 세션 고정을 피할 수 있습니다. 3. 세션 예측은 세션 ID의 무작위성과 예측 불가능 성을 보장해야합니다. 4. 세션 중독 데이터를 확인하고 필터링하여 세션 중독을 방지 할 수 있습니다.

PHP 세션을 파괴하려면 먼저 세션을 시작한 다음 데이터를 지우고 세션 파일을 파괴해야합니다. 1. 세션을 시작하려면 세션 _start ()를 사용하십시오. 2. Session_Unset ()을 사용하여 세션 데이터를 지우십시오. 3. 마지막으로 Session_Destroy ()를 사용하여 세션 파일을 파괴하여 데이터 보안 및 리소스 릴리스를 보장하십시오.

PHP의 기본 세션 저장 경로를 변경하는 방법은 무엇입니까? 다음 단계를 통해 달성 할 수 있습니다. session_save_path를 사용하십시오 ( '/var/www/sessions'); session_start (); PHP 스크립트에서 세션 저장 경로를 설정합니다. php.ini 파일에서 세션을 설정하여 세션 저장 경로를 전 세계적으로 변경하려면 세션을 설정하십시오. memcached 또는 redis를 사용하여 ini_set ( 'session.save_handler', 'memcached')과 같은 세션 데이터를 저장합니다. ini_set (

tomodifyDatainAphPessess, startSessionstession_start (), 그런 다음 $ _sessionToset, modify, orremovevariables.

배열은 PHP 세션에 저장할 수 있습니다. 1. 세션을 시작하고 session_start ()를 사용하십시오. 2. 배열을 만들고 $ _session에 저장하십시오. 3. $ _session을 통해 배열을 검색하십시오. 4. 세션 데이터를 최적화하여 성능을 향상시킵니다.

PHP 세션 쓰레기 수집은 만료 된 세션 데이터를 정리하기위한 확률 메커니즘을 통해 트리거됩니다. 1) 구성 파일에서 트리거 확률 및 세션 수명주기를 설정합니다. 2) CRON 작업을 사용하여 고재 응용 프로그램을 최적화 할 수 있습니다. 3) 데이터 손실을 피하기 위해 쓰레기 수집 빈도 및 성능의 균형을 맞춰야합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
