글 시작 부분에 작성됨:
봄 축제가 다가오고 있으며, 바쁜 한 해를 보내고 드디어 집에 갈 수 있게 되어 매우 기대됩니다. 외부인들이 베이징을 떠난 후 베이징은 마치 '텅 빈 도시' 같았습니다. 오늘 동료들이 이에 대해 이야기하고 있을 때 갑자기 사마천의 유명한 말이 생각났습니다. ." 이제 이익의 방향은 가족관계, 연을 감는 것이어야 하며, 지난 1년 동안 어떤 일을 겪었든 마음을 정리하고 집에 가서 새해를 축하해야 합니다. 미리 모두 새해 복 많이 받으세요~
춘절 기간에는 저도 저와의 약속을 꼭 이행하고 매주 1편 이상의 글을 올리도록 하겠습니다.
그리고 좋은 제안이 있으시면 알려주시기 바랍니다.
본문으로 돌아가기: 오늘은 PHP의 클래스에 대해 이야기하겠습니다.
1 클래스란 무엇인가요?
클래스란 고양이, 개, 돼지 등을 하나의 카테고리로 묶는 것입니다. 모두 동물이므로 하나로 묶을 수 있습니다. 범주. 클래스는 추상적이고 구체적이지 않습니다. 클래스가 구체적으로 만들어지면 클래스의 객체가 됩니다. 고양이와 개는 동물 클래스의 객체입니다. Students도 클래스로 간주할 수 있으며, Xiaohong은 학생 클래스의 객체입니다(개발 용어는 '인스턴스'라고도 합니다)
대략적으로 클래스는 여러 메소드의 집합입니다. (실제로 메소드와 결합해서만 구현되는 속성이 있습니다.) 이러한 메소드는 프로그램에서 자주 사용하는 일부 논리 또는 알고리즘입니다. 이를 클래스로 래핑하면 프로그램의 효율성이 향상되고 코드 중복이 줄어듭니다.
2 클래스 정의
각 클래스의 정의는 클래스라는 키워드로 시작하고 그 뒤에 클래스 이름이 오고 그 뒤에 클래스의 속성과 속성을 포함하는 한 쌍의 중괄호가 옵니다. 클래스 메소드의 정의.
<?php class SimpleClass { // 声明类的属性 public $var = 'a default value'; // 声明类的方法 public function displayVar() { echo $this->var; } } ?>
클래스 정의 내에서 메소드가 호출되면 의사 변수 $this를 사용할 수 있습니다. $this는 호출 개체에 대한 참조입니다. 실제로는 이 클래스(대명사)
의 인스턴스를 가리킵니다. 3.
클래스의 인스턴스도 특정 객체입니다. 클래스의 인스턴스를 생성하려면 new 키워드를 사용해야 합니다.
new 뒤에 클래스 이름이 포함된 문자열이 오면 해당 클래스의 인스턴스가 생성됩니다.
rree4계층 상속
은 아이가 아버지의 유전자를 물려받는다고 이해하면 된다.
① 클래스는 선언문의 'extends' 키워드를 사용하여 다른 클래스의 메서드와 속성을 상속받을 수 있습니다.
② PHP는 다중 상속을 지원하지 않습니다. 클래스는 하나의 기본 클래스만 상속할 수 있습니다(사실 자식은 아버지를 하나만 가질 수 있습니다).
③ 물려받은 메소드나 속성을 같은 이름으로 다시 선언하면 오버라이드가 가능합니다(아들이 아버지의 원래 유전자를 개량한 것으로 이해 가능). 그러나 상위 클래스가 메서드를 정의할 때 final을 사용하면 해당 메서드를 재정의할 수 없습니다. 재정의된 메서드나 속성은 parent::를 통해 액세스할 수 있습니다.
IV 메서드를 재정의할 때 매개변수는 일관성이 있어야 합니다. 그렇지 않으면 PHP는 E_STRICT 수준 오류 메시지를 발행합니다. 단, 생성자는 재정의될 때 다른 매개변수를 사용할 수 있습니다.
// 创建一个实例 <?php $instance = new SimpleClass(); // 也可以这样做: $className = 'Foo'; $instance = new $className(); // Foo() ?>
5 클래스 이름 구문 분석
ClassName::class를 사용하면 ClassName 클래스의 정규화된 이름이 포함된 문자열을 얻을 수 있습니다.
// 简单的类继承 <?php class ExtendClass extends SimpleClass { // 重新定义父类的方法 function displayVar() { echo "继承类\n"; parent::displayVar(); } } $extended = new ExtendClass(); $extended->displayVar(); ?>
위 내용은 PHP 시리즈(1)의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!