Home Backend Development PHP Tutorial PHP object-oriented (OOP) programming complete tutorial: 5. How to instantiate objects?

PHP object-oriented (OOP) programming complete tutorial: 5. How to instantiate objects?

Aug 08, 2016 am 09:30 AM
function nbsp new php

We said above that the unit of an object-oriented program is an object, but objects are instantiated through classes. Now that our class has been declared, the next step is to instantiate the object.

After defining the class, we use the new keyword to generate an object.

$Object name = new Class name();


<?php
class Person
{
    //下面是人的成员属性
    var $name; //人的名子
    var $sex; //人的性别
    var $age; //人的年龄

    //下面是人的成员方法
    function say() { //这个人可以说话的方法
        echo "这个人在说话";
    } 

    function run() { //这个人可以走路的方法
        echo "这个人在走路";
    }
}

$p1=new Person();
$p2=new Person();
$p3=new Person();
?>
Copy after login


$p1=new Person();

This code is the process of generating instance objects through classes. $p1 is the name of the object we instantiate. Similarly, $p2 and $p3 are also the names of the objects we instantiate. A class can instantiate multiple objects. Each object They are all independent. The above code is equivalent to the example of 3 people. There is no connection between each person. It can only mean that they are all human beings. Each person has his own name, gender and age attributes. Everyone has their own attributes. There are ways to talk and walk. As long as they are member attributes and member methods reflected in the class, the instantiated object will contain these attributes and methods.

Like integers and floating-point types in PHP, objects are also a data class. They are used to store different types of data. They must be loaded into memory during operation. So how are objects reflected in memory? What about? Logically speaking, memory is roughly divided into 4 segments, the stack space segment, the heap space segment, the code segment, and the initialized static segment. Different declarations in the program are placed in different memory segments. The stack space segment is used for storage. Data types of the same space length and occupying small space, such as integers 1, 10, 100, 1000, 10000, 100000, etc. occupy the same length of space in the memory, and are all 64 bits and 4 bytes. So where should the data of a data type that has a variable length and takes up a lot of space be placed in that memory segment? Such data is placed in the heap memory. Stack memory can be directly accessed, while heap memory cannot be directly accessed. For our object, it is a large data type and takes up space of a variable length. Therefore, the object is placed in the heap, but the object name is placed in the stack, so that the object can be used through the object name. .

$p1=new Person();

For this code, $p1 is the object name in the stack memory, and new Person() is the real object in the heap memory. Please see the figure below for details:


As can be seen from the above picture, $p1=new Person(); the right side of the equal sign is the real object instance. The entity in the heap memory. There are 3 times of new Person() in the above picture, so 3 spaces will be opened in the heap. , generate 3 instance objects, each object is independent of each other and uses its own space. In PHP, as long as a new keyword appears, an object will be instantiated and an own space will be opened in the heap. space.

Each instance object in the heap stores attributes. For example, the instance objects in the heap now store name, gender, and age. Each attribute in turn has an address.

$p1=new Person(); The left side of the equal sign $p1 is a reference variable. The first address of the object is assigned to the reference variable "$p1" through the assignment operator "=", so $p1 stores the first address of the object. Variable, $p1 is placed in the stack memory. $p1 is equivalent to a pointer pointing to an object in the heap, so we can operate the object through the reference variable $p1. Usually we also call the object reference an object.


The above introduces the complete tutorial of PHP object-oriented (OOP) programming: 5. How to instantiate an object?, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

CakePHP Logging CakePHP Logging Sep 10, 2024 pm 05:26 PM

Logging in CakePHP is a very easy task. You just have to use one function. You can log errors, exceptions, user activities, action taken by users, for any background process like cronjob. Logging data in CakePHP is easy. The log() function is provide

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Services CakePHP Services Sep 10, 2024 pm 05:26 PM

This chapter deals with the information about the authentication process available in CakePHP.

See all articles