PHP Orientado a Objetos – Aula 93 – Criação de Objetos – eXcript

사람들에게 말하십시오! 오리엔트 PHP 과정에 대한 또 다른 에피소드에 오신 것을 환영합니다 개체

이번 레슨에서는 PHP로 객체 생성을 연구 할 것입니다 우리는 공부한다 그 클래스는 객체 생성시 어떻게 작동해야하는지에 대한 디자인입니다 그런 다음 클래스는 코드 자체이므로 객체를 생성하거나 우리가 인스턴스를 가지려면 PHP에 대해 말할 필요가 있습니다 주어진 클래스로부터 객체를 생성한다

객체 지향에서 우리는 인스턴스, 객체 또는 클래스 인스턴스는 동의어입니다 다시 말하면, 객체는 인스턴스와 동의어입니다 우리가 물건이나 물건에 대해 말할 때마다 우리는 인스턴스에 대해 말하고, 우리는 똑같은 말을 할 것입니다 즉, 우리는 클래스 코드의 구현을 참조하십시오 그래서 우리는 매번 코드를 사용해야합니다

클래스의 인스턴스가 실행되면 우리는 객체 또는 인스턴스를 갖게됩니다 사전 Aurelio는 단어 인스턴스에 대해 여러 가지 의미를 정의하지만 동일합니다 이는 컴퓨터 과학에서의 예를 의미합니다 곧, 우리는 그 사전에 인스턴스 (instance)는 프로그램 실행 중에 생성 된 각 개체입니다 우리는 어떻게 당신이 볼 수있는, 사전 인스턴스 Aurélio, 우리가 만든 개체의 각 하나를 나타냅니다

그래서 우리는 객체 지향에서 그 인스턴스와 객체를 의미합니다 물건 이 개념들을 잘 정의하는 것이 중요합니다 왜냐하면 우리의 모든 연구, 또는 귀하가상의하는 모든 문헌은 동일한 용어를 사용합니다 이제이 3 가지 개념을 살펴 보겠습니다

그 클래스는 객체 디자인입니다 즉, 코드 자체입니다 객체는 코드의 실행이다 즉, 그것은 블록 내부에 정의 된 모든 코드의 실행이다 수업의 지시

마지막으로, 우리는 인스턴스가 객체와 동의어라는 것을 가지고있다 즉, 예를 들어 이야기하거나 물건을 말하면 똑같은 말을하는 것입니다 그럼 공부하겠습니다 다이어그램 여기에 우리는 수업을 대표합니다

보시다시피 이 클래스에서 선언 된 3 개의 변수 처음에는 정의 된 변수 A가 있습니다 public으로 선언하고 값 1로 초기화합니다 그런 다음 변수 이름이 있습니다 B는 public으로 정의되고 값 2로 초기화됩니다

마지막으로 변수 C는 공개로 정의되고 값 3으로 초기화되었습니다이 슬라이드에서, 우리는 우리 클래스의 정의를 가지고있다 new를 사용하여 클래스에서 객체를 만듭니다 여기서 우리는 우리의 정의를 가지고 있습니다 클래스를 만들었고 여기에는 그 클래스에서 생성 된 객체가 있습니다

그래서 우리는 우리는 객체 A가 3 개의 변수를 가지고 있고 우리는 정의 된 3 개의 변수를 가지고 있습니다 우리 클래스의 객체 A가 객체 A에 존재하고 또한 각 변수가 우리 수업에서 기본적으로 설정된 것과 같은 값을 받았습니다 옆에, 우리는 16 진수로 4 개의 숫자 그래서이 숫자는 객체의 메모리 주소입니다 A

즉,이 개체는이 주소의 메모리에 할당됩니다 그런 다음, 이 주소는이 개체의 주소입니다 보시다시피, 각 회원은 또한 메모리 주소와 우리가 볼 수 있듯이, 모든 주소가 다릅니다 각 개체 또는 각 변수 또는 함수에는 주소가 있기 때문에 단일 메모리 이제 우리는 하나의 객체를 원한다고 가정 해 봅시다

우리가 볼 수 있듯이, 메모리 주소는 다르다 즉, 객체 객체 B가 다른 위치에있는 동안 A는 메모리 위치에 있습니다 그런 다음, 객체 A와 객체 B 모두 변수는 메모리 주소를가집니다 주소 객체 A에 포함 된이 변수의 메모리는 메모리 주소와 다릅니다 객체 B에 포함 된 변수 A의 값을 반환합니다

즉, 객체를 만들 때 클래스로부터 우리는 각 객체가 자신의 변수를 가질 것이라는 것을 알 수 있습니다 따라서 객체 A에 포함 된 변수 A의 값을 변경하면이 값은 변경되지 않습니다 여기에 객체 B에 반영됩니다 또한 메모리 주소가 다르기 때문에 다시 말하면, 오브젝트 B는 같은 이름의 변수를가집니다

왜냐하면 오브젝트 A와 오브젝트 B, 그들은 같은 클래스의 인스턴스입니다 그러나 객체에 포함 된 모든 멤버 객체 B에 포함 된 것과 다른 메모리 주소를 갖습니다 그런 다음, 객체 A에 포함 된 값을 변경하면 이러한 변경 사항이 적용되지 않습니다 객체 B에 반영됩니다 왜냐하면 두 객체 모두에서 동일한 것을 가지고 있기 때문입니다

그러나 각 개체는 단일 인스턴스이므로 자체 주소가 있습니다 기억, 우리는 그것의 회원이 또한 자신의 주소를 가질 것입니다 기억 그리고 우리가 같은 물건에서 얼마나 많은 물건을 만들어 내는지는 중요하지 않습니다 클래스에서 생성 된 모든 객체는 해당 주소를 가지며 또한 그 구성원 객체는 메모리 주소를가집니다 보시다시피, 우리는 3 개의 물체를 가지고 있습니다

모든 객체가 만들어 졌기 때문에 동일한 변수를 갖는 같은 클래스 그러면 모든 사람들이 같은 회원을 갖겠지 만 그건 아닙니다 해당 멤버는 동일한 메모리 주소를가집니다 그래서, 우리는 각각의 인스턴스에 있어야합니다 단일 개체이고 이러한 개체에 포함 된 모든 멤버의 이름은 같지만 서로 다른 메모리 공간에 할당됩니다

이제이 다이어그램을 코드, 즉 클래스를 정의 해 보겠습니다이 클래스 안에 3 개의 변수를 정의 할 것입니다 공개 이름 A, B 및 C가 있습니다이 값은 1, 2 및 3 값으로 초기화됩니다 우리는 같은 클래스에서 3 개의 인스턴스를 생성 할 것입니다

그러니 우리는 수업을 원해 이 클래스의 이름은 클래스 자체입니다 그런 다음 우리는 우리는 괄호를 닫고 그 클래스 내에 포함 된 변수를 정의합니다 첫 번째 변수를 public으로 정의하고, 그 이름은 a이며, 초기화 해 봅시다 이 변수의 값은 1입니다

명령을 끝내기 위해 점과 쉼표를 누릅니다 정의하자 두 번째 변수는 public으로 선언하고,이 변수를 초기화 된 것과 동일하게 마지막으로 변수 c를 만들고 값 3으로 초기화합니다 따라서 예약 된 클래스 단어를 사용하여 클래스를 정의합니다 이름 클래스

그런 다음 여기에 블록이 있다는 것을 나타 내기 위해 키를 열고 닫습니다 우리 수업의 지시 즉, 우리 수업과 관련된 모든 프로그래밍은 이 명령어 블록 안에 포함되어 있습니다 이 작업이 완료되면 3 가지 변수를 정의합니다 공개로, 첫 번째는 이름으로, 두 번째는 이름으로 비아 세 번째로 이름으로 우리는 각각 1, 2, 3의 값을 정의합니다

나는 지금까지는 아무 것도 없다고 믿는다 비밀, 우리는 이미 비슷한 코드를 만들었 기 때문에 이제 우리는 무엇을합니까? 여기에서이 클래스의 인스턴스를 만드는 것입니다 처음에는 우리가 볼 수 있듯이, 우리는 우리의 다이어그램을 보았습니다, 여기에는 수업이 있습니다 우리는 3 개의 물체를 가지고 있습니다

첫 번째 개체의 이름은 개체 A, 두 번째 개체 B, 세 번째 개체 그래서 같은 방법을 정의합시다 변수를 원한다고 가정 해 봅시다 이 변수의 이름은 객체 A가 될 것이고 우리는 그것의 새로운 인스턴스를 우리에게 할당 할 것이다 클래스 이름 클래스 즉, 우리가 새로운 수업을 만들고 싶을 때마다 우리는 예약어 new를 사용합니다

다음으로 우리가 원하는 클래스의 이름을 전달합니다 생성하고 마지막으로 괄호를 열고 닫습니다 즉, 이것은 다음에 대한 정의입니다 새로운 클래스의 생성 우리는 새로운 수업을 만들고 있으며, 우리는 변수 객체 이름에 대한이 클래스의 주소 A

그러면 우리는 객체 변수 A는 우리가 메모리에서 생성하는이 객체를 가리킬 것입니다 변수 객체 이름 B를 정의 해 보겠습니다 클래스 인스턴스 우리는 명령을 끝내기 위해 괄호와 세미콜론을 열고 닫습니다 여기 16 행에서 우리는 PHP가 새로운 인스턴스를 생성하도록 요청하고 있습니다

클래스 이름 클래스에 정의 된 코드 즉, PHP는 새로운 객체를 만듭니다 우리 수업의 정의에서 그 대상의 주소를 할당 할 것입니다 개체 변수 B입니다 즉, 개체 변수 B는 주소를 가리킬 것입니다 새 명령문에서 반환되고 동등성을 통해 할당 된 메모리 변수 이름 객체 B에 대해, 객체 이름 C와이 인스턴스에 생성 된 새 인스턴스를 지정합니다

클래스에서 정의한 코드 그래서 여기 15, 16, 17 번에 우리가 만들고 있습니다 클래스 이름 클래스에 정의 된 코드의 인스턴스가 3 개 있습니다 즉, var_dump () 함수를 사용하여 각 변수의 내용을 인쇄 해 봅시다 그런 다음, 우리는 함수 var_dump ()를 호출 할 것이고 우리는 객체의 이름을 매개 변수로 전달할 것이다 A

지시를 완료하기위한 세미콜론 우리는 그것을 처형했습니다 어떻게 우리는 var_dump () 함수는 콘솔에 여기에 포함 된 값을 출력합니다 A 그래서 우리는 기억 속에있는 계급을 가지고 있습니다

이 계급은 cerch 계급의 이름을 가지고 있습니다 1 다음 각 변수에 포함 된 값이 인쇄되었습니다 그런 다음 변수 A는 숫자가 1이고, 변수 B가 2이고 변수 C가 3입니다 즉, 이 클래스에서 정의한 값과 같습니다 즉, 객체의 디자인에 있습니다

이제 함수 var_dump ()를 통해 객체 B와 객체를 인쇄 해 봅시다 C 우리는 처형했다 그래서 우리는 우리의 첫 번째 클래스가 클래스 이름을 소유하고 있습니다 1, 우리의 두 번째 클래스는 클래스 2의 이름을 가지고 있으며 우리의 세 번째 클래스는 클래스 3의 이름

그래서 우리는 새로운 인스턴스를 생성 할 때마다 클래스 이름, 문자열 및 수량을 통해 합성 이름을 수신합니다 생성 된 인스턴스 수 즉, 우리의 첫 번째 객체는 클래스 1, 두 번째 객체는 클래스 2의 이름을 받았고 세 번째 객체는 클래스 2의 이름을 받았습니다 개체는 클래스 cerch 3의 이름이 주어졌습니다 그런 다음 우리가 생성 한 각각의 인스턴스에 대해, PHP만으로는 클래스의 이름으로 된 이름을 할당 한 다음 숫자 문자 다음에 선형 숫자가 정의됩니다 즉, 첫 번째는 1, 두 번째는 2, 세 번째는 3입니다

메모리에서 객체를 제거합니다 PHP는 항상 인스턴스를 생성합니다 새 문장을 사용할 때 클래스에서 그러나, 그것은 책임이있다 메모리 공간을 할당 해제합니다 즉,이 인스턴스는 변수가 없으면 더 선언됩니다

PHP는 자동으로 그렇게합니다 메모리에 사용 된 공간을 할당 해제합니다 그러나 일부 상황에서는 많은 양의 데이터를 메모리에로드 한 다음 정보를 저장하지 못하는 경우를 대비하여이 메모리 공간을 할당 해제 할 수 있습니다 이 정보가 더 필요합니다 우리가 사용해야하는 메모리 공간을 할당 해제하려면 unset () 함수

즉, 우리는 이미이 함수를 제외해야 할 때 사용했습니다 배열의 요소 우리가 자세히 보면 PHP는 다음과 같은 클래스를 처리합니다 배열 형 구조입니다 즉, 변수 A가 연관되어 있습니다

정수 값 1로, 변수 B는 정수 값 2와 연관되고 변수 C는 보시다시피 PHP는 다음과 같은 내용을 포함하는 Array를 정의했습니다 3 요소의 경우 각 요소의 핵심은 클래스에서 정의한 이름입니다 시작시 설정된 값이 해당 이름과 연결되었습니다 따라서 우리는 unset () 함수를 호출하여 메모리에서 객체를 제거합니다 그럼 같이 가자

매개 변수 our object object name A 문을 마무리하는 세미콜론 마지막으로이 줄을 복사하고 아래에 붙여 넣으십시오 다시 말해, 개체가 실제로 할당 취소되었습니다 그 일은 우리가 처형해야만했습니다

그리고 우리가 볼 수 있듯이, 우리는 처음에 클래스 A를 인쇄했습니다 즉, 객체 A를 만들고 인쇄했습니다 var_dump () 함수를 통해 화면에 표시됩니다 그런 다음 unset () 함수를 호출합니다 우리는 객체 A가 메모리에서 제거되어야한다고 말했다

그리고 우리가 여기서 볼 수 있듯이 콘솔에서 PHP는 라인이 실행되는 동안 오류가 발생했다고 말합니다 즉, 여기서는이 오류,이 경우 정의되지 않은 변수 인 무기한 변수가 발생했습니다 정렬 24가 실행 중입니다 즉, 메모리에서 객체를 제거 할 때, 함수에 대한 참조를 전달할 때 예외가 발생했습니다 메모리에 더 이상 할당되지 않은 var_dump ()

23 번 라인에서 우리는 우리는이 객체가 메모리에서 삭제되어야한다고 말했다 그리고 여기 24 행에서 우리는 같은 것을 인쇄하십시오 따라서 PHP는 예외를 제기합니다 매개 변수로 전달 된 것은 존재하지 않습니다 즉, 여기에 정의되지 않은 변수가 있습니다

그래서 그것입니다 여러분! 이 단원에서는 인스턴스 및 객체의 개념을 학습합니다 또한 각 인스턴스에는 메모리 주소와 멤버가 있음을 알 수 있습니다 이 인스턴스에 포함 된 고유 한 메모리 주소는 사용자를 식별합니다 수업 내에서 그런 다음 인스턴스를 만드는 방법을 배웠습니다 수업을 통해

마지막으로 우리는 PHP가 자동으로 객체를 제거한다는 것을 배웠습니다 그러나 메모리를 할당 해제해야한다면 unset () 함수를 통해 매개 변수와 동일한 인스턴스 그래서 그게 다야! 나는 본다 우리 다음 학급에있는 너희들, 고마워, 너를 봐, 안녕!