>  기사  >  백엔드 개발  >  100일 만에 즐겁게 PHP 배우기(7)] PHP 생성자 강의: 아버지와 아들의 고충

100일 만에 즐겁게 PHP 배우기(7)] PHP 생성자 강의: 아버지와 아들의 고충

WBOY
WBOY원래의
2016-08-08 09:31:10733검색

전희 부분:

1. php를 한 문장으로 요약합니다.

PHP는 웹 애플리케이션에 사용되는데, 그중에서도 유명한 워드프레스는 PHP를 기반으로 개발되었습니다. 웹 이외의 응용 프로그램에 PHP를 사용하는 것을 고려하지 마십시오.

이 기사에 관련된 일부 키워드 설명:

Gaoshangda: 고급스러운 분위기와 품격의 약자. 인터넷은 너무 인기가 많고 네티즌들은 모두 불행하다고 말하면서 너무 게으르다

Php의 여러 버전:

PHP4 zend 엔진 도입과 다양한 고급 가속 기능 등 PHP의 획기적인 버전이라고 해야 할까요. 하지만 이번 버전은 객체지향이 너무 약해서 php4를 무시하는 것이 옳습니다.

PHP5 개발을 원하시면 가장 널리 사용되고 비교적 안정적인 버전인 5.3 버전을 다운로드 하시기 바랍니다. 5.0~5.2는 직접 삭제해주세요. 5.4 이후에는 주의해서 사용하시기 바랍니다. 하나는 아직 인기가 없기 때문이고, 다른 하나는 5.4 이전 버전과 호환되지 않기 때문입니다(인터넷상의 많은 오픈소스 라이브러리는 호환되지 않습니다). 5.4 이후)

PHP6을 다운로드할 수 있게 해주셔서 존경합니다.

PHP 학습 정보:

PHP 구문을 빠르게 배우고 싶다면 Windows에서 PHP 컴파일을 사용하세요. 설치 프로그램은 한 번의 클릭으로 설치 및 구성이 간단합니다. Linux에서 직접 PHP 학습을 시작하는 것은 권장되지 않습니다. 올바르게 구성한 후에는 더 이상 PHP에 관심이 없습니다.

상용 환경에 설치하는 방법을 배웠다면 Linux에서 PHP를 구성하고 개발하는 방법도 배워야 합니다. 결국, 많은 뛰어난 타사 지원이 Linux에 기본적으로 제공되며 효율성과 안정성 측면에서도 Linux가 최고입니다. 물론 IIS7에서 PHP의 지원이 좋다고는 하지만 너무 심각하게 받아들이지는 마세요. 지루하기 때문이죠.

2. 텍스트 부분:

생성자란

각 언어(java, c#, php 등)의 생성자의 특성은 다소 다릅니다. 각 객체가 초기화될 때 자동으로 실행될 수 있는 기능입니다. 이 기능은 따로 설정할 필요는 없지만, 설정하면 자동으로 실행됩니다. 더 중요한 것은 이 함수를 외부에서 수동으로 호출할 수 없다는 것입니다.

일반적으로 대부분의 언어에서 생성자 이름과 클래스 이름은 동일합니다. ​​​​PHP는 예외인데, php5에서는 그렇습니다. 여전히 동일할 수 있습니다. 그러나 클래스 이름과 동일한 함수 이름을 사용하는 것은 더 이상 권장되지 않습니다.

왜 생성자가 있어야 할까요

독립된 단일 클래스라면. 실제로 생성자는 "편리한" 역할도 수행합니다.

예:

클래스 A

{

function A()

{

//여기서 초기화 작업을 수행하세요

}

}

이게 말이 되나요? 실제로 A()의 항목을 외부에서 호출할 수는 없습니다.

그렇다면 생성자는 언제, 어디서 의미가 있을까요? 사실, 객체와 객체 상속에 관한 것입니다. 스토리 기반의 예를 들어주세요:

예: 1년 후, 저는 마침내 매우 완전한 것을 개발했습니다. 미친 개 같은 객체 집합. 고급 기능 클래스 라이브러리가 있는데 중국에는 이 클래스 라이브러리에 비슷한 제품이 없다고 생각하여 다른 사람이 이해하지 못하도록 클래스 라이브러리 구조도 작성했습니다. 극도로 복잡해지죠. 그런 다음 실수로 여러 프로그래머에게 판매했습니다. 하지만 뭐? 나는 정말로 통계를 내고 싶습니다. 즉, 누가 내 클래스 라이브러리를 사용했는지 알고 싶어서 기분이 좋아질 수 있도록 기본 클래스 라이브러리를 다음과 같이 디자인했습니다.

class Niu Niu //고급 클래스 라이브러리의 이름입니다

{

function Niu Niu()

                                                                                        ~                     ;

}

> }

여기서는 다음과 같이 가정합니다. 프로그래머가 원하는 경우 내 함수를 사용하려면 내 클래스 라이브러리를 상속해야 합니다. 그렇지 않으면 호출하는 방법을 이해하지 못할 것입니다.

Class Mavericks는 Niu Niu를 확장합니다. //이것은 직접적으로 상속 작성 방법입니다. php

{

//여기서 원하는 것은 무엇이든 할 수 있습니다. 어쨌든, 나는 이미 부모 클래스의 생성자를 설정했기 때문에 당신이 하기 전에 정보를 수집할 것입니다.

}

그래서 모두가 알고 있습니다:

1. >

2. 객체 지향 구조 설계에 더 많이 사용됩니다

3. 생성자의 주요 용도는 상속성, 제어성, 시스템화이며, 제품화 및 상용화를 주요 용도로 사용하는 경우

4 . IOS 개발 방법을 알고 있다면 작성한 뷰가 UITableView를 상속하면 결국 인터페이스가 자동으로 테이블을 렌더링한다는 것을 알 수 있습니다. Apple이 UITableView를 어떻게 구현하는지 알고 싶으십니까? 그것을 할 수 있는 방법은 없습니다. 그것을 정직하게 상속받아서 내 것을 기반으로 코드를 작성하는 것뿐입니다.

5. 프로그래밍이란 프로그램이 우아하고, 아름답고, 예술적이고, 이해하기 어렵다는 것을 의미하지 않습니다. 마찬가지로, 똑똑한 상사가 말하는 모든 단어에는 그의 웅변이 얼마나 좋은지를 반영하는 것이 아니라 목적이 있습니다.

PHP 기능 생성자

위의 제한사항은 괜찮아 보이지만 실제로는 위반될 수 있습니다. 즉, 하위 클래스가 PHP에서 상위 클래스를 상속한 후 하위 클래스가 자체 생성자를 설정하면 상위 클래스의 함수가 자동으로 실행되지 않습니다. 코드를 보세요:

class Mavericks extends Niu Niu //이것은 바로 PHP의 상속 작성 방법입니다.

{

function calf()

{

//부모 클래스가 없고 자체 생성자가 있습니다. 걱정해라

}

}

이거 쓰면 안되겠다 상위 클래스에 추가하려면 생성자에서 "정보 수집"을 수행하는 것은 더러운 행동입니다.

PHP5의 생성자 기능

대부분은 언어의 생성자는 클래스 이름과 동일해야 합니다. 실제로 위의 작성 방법은 PHP4의 작성 방법입니다. PHP5에서는 대신에 창립자가 __construct 함수를 사용했습니다. 물론 원래의 작성 방법 은 여전히 ​​

과 호환됩니다. 이러한 궁극적인 작성 방법을 살펴보겠습니다. (왜 궁극기라고 하나요? 쓰기 너무 힘들어서 그만하고 한걸음에 끝내야 했어요)

반아빠

{        

function __construct() //여기서 father() 함수를 작성하거나 __construct

{

echo "아버지";

}

}

클래스 child 아버지 확장

{

function child()

{

echo "son"; //여기에 child가 자체 생성자를 가지고 있으면 "father"는 출력되지 않습니다.

// parent::__construct(); // 아버지의 생성자 실행을 고집하면 이렇게 해야 하는데 방법이 없습니다

}

}

$child=new child();

위 생성자를 요약하겠습니다:

1. 아버지와 아들은 모두 같은 조상에게서 태어나 같은 가문에서 물려받은 한 가족입니다.

2. 아들이 결혼하지 않고 사업을 시작하면(건설업자가 없음) 모든 사람에게 자신이 XX의 아들임을 알려야 합니다. 아들을 안다 (아버지의 생성자는 자동 실행을 강제한다)

3. 아들이 자라면 아버지가 책임을 맡는 것을 원하지 않는다. 그런 다음 그는 자신의 가족을 시작하고 사업을 시작해야 합니다(자신의 생성자를 정의). 이제 아버지가 누구인지 다른 사람에게 알리지 않고도 자신이 누구인지 외부 세계에 알릴 수 있습니다. (자신만의 생성자만 실행합니다.)

4. 아들이 경력을 시작한 후, 그는 아버지가 누구인지 알게 되었습니다. 불가능했고 때때로 그는 프로젝트를 돕기 위해 아버지에게 의지해야 했습니다. 그래서 밖에서 아버지의 이름만 계속 언급할 수 밖에 없습니다(상위 클래스의 생성자를 실행하려면 parent::__construct()를 실행하세요)

이 장의 마지막 코드를 살펴보겠습니다.

class father

{     🎜>

function __construct() //여기서 father() 함수를 작성하거나 __construct

{

echo "Father"를 사용할 수 있습니다.

$this->talk();

}

}

클래스 자식 확장 아버지

{

함수 자식()

{

echo "son"; //여기에 자체 생성자가 있는 경우 "father"는 출력되지 않습니다.

parent::__construct(); 아버지 생성자 실행을 고집하면 이렇게 해야 하는데 방법이 없습니다

}

함수 이야기( )

{

echo "내 아들을 도와주세요";

}

}

$child=new child();

부모 클래스를 먼저 살펴보세요. 부모 클래스에 talk 기능이 없기 때문에 부모 클래스를 초기화할 때 오류가 발생합니다. 따라서 하위 클래스(자식)만 초기화할 수 있습니다. parent::__construct();가 실행되면 하위 클래스의 talk가 실행되지만 실제로는 상위 클래스의 생성자에 의해 자동으로 실행됩니다.

이 내용을 보고 나면 PHP 생성자에 대해 확실히 새로운 관점과 이해를 갖게 될 것입니다. 실제로 이것은 정말 유용합니다. 위의 리듬을 이어가며 위의 톤을 사용하여 이 코드를 설명하겠습니다.

1. 어느 날 아버지는 마침내 늙으셨고 더 이상 아들의 프로젝트를 돕기 위해 나가실 수 없게 되었습니다. , 그래서 집에 있으면서 요리만 할 수 있어요(부모 클래스만 혼자 초기화하면 문제 발생)

2. 아들은 아버지가 가져온 자원에 의지해 난리를 칩니다. 그는 아버지를 정말 쓸모없어서 다시는 아버지를 만나러 다시 가고 싶지 않을 뻔했다고 말했습니다.

3. 마침내 어느 날, 그의 아버지는 아들은 자신의 경력에서 큰 문제를 안고 있었는데, 이 문제를 해결할 수 있는 사람은 아버지의 친구였습니다.

4. 그러나 늙은 아버지는 아파서 하루 종일 침대에 누워 있었습니다. 아버지는 과거의 원한에도 불구하고 친구에게 편지를 써서 아들을 위해 말했습니다. 친구만이 열 수 있다고 합니다.

5. 아들이 아버지의 친구에게 편지를 주었습니다. (하위 클래스의 생성자가 부모 클래스)

6. 아버지의 친구가 편지를 열었고, 아들의 눈이 눈물로 흐려졌습니다. 편지는 다음과 같습니다. (부모 클래스의 생성자가 자동으로 실행됩니다.) 하위 클래스의 메서드)

자, PHP 생성자에 대해서는 이쯤으로 충분합니다. 사실 PHP뿐만 아니라 현재 사용 중인 모든 개발 언어에는 고유성이 있습니다. 누구에게도 미래가 없습니다. 단지 분야와 고객이 다르고 요구 사항이 다르고 돈이 다를 뿐입니다.

여기 또 다른 제안이 있습니다. 프로그램을 작성하는 것은 일을 잘하고, 현명하고, 배려하는 사람이 모든 사람에게 똑같이 인기가 있어야 한다는 것입니다. , 사용자를 배려하는 프로그램 회원으로서 당신이 작성하는 코드는 분명 사용자, 리더, 동료들에게 사랑을 받을 것입니다.

영화 '요리의 신' 속 주성치의 명언: "최고의 요리를 마음으로 만든다"는 것은 어떤 요리에 이 마음이 있는 것이 아니라, 이 마음은 여기, 삶, 세상에 대한 당신의 이해와 인식 속에 있습니다.

위 내용은 즐거운 배움 PHP 100일(7부)] PHP 생성자 강의: 아버지와 아들의 고충 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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