Home Backend Development PHP Tutorial PHP object-oriented guide (2) Instantiating objects and using object members

PHP object-oriented guide (2) Instantiating objects and using object members

Dec 19, 2016 pm 01:43 PM
object-oriented

5. How to instantiate objects
We said above that the unit of an object-oriented program is an object, but objects are instantiated through classes. Since
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.
Code snippet

$对象名称= new 类名称(); 
<?php 
class Person{ 
//下面是人的成员属性 
var $name; //人的名字 
var $sex; //人的性别 
var $age; //人的年龄 
//下面是人的成员方法 
function say(){ 
//这个人可以说话的方法 
echo "这个人在说话"; 
} function run(){ 
//这个人可以走路的方法 
echo "这个人在走路"; 
} 
} 
$p1=new Person(); 
$p2=new Person(); 
$p3=new Person(); 
?> 
$p1=new Person();
Copy after login

This code is the process of generating instance objects through classes. $p1 is the name of the object we instantiate. Similarly, $p2,
$p3 are also the names of the objects we instantiate. A class can be instantiated. Multiple objects, each object is 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. , attributes of gender and age, everyone has a way of talking and walking. As long as the member attributes and member methods are reflected in the class, the instantiated object will contain these attributes and methods.
Objects in PHP, like integers and floating point types, are also a data class, which are used to store different types of data.
They must be loaded into memory for use during runtime, so the objects in the memory are How is it reflected? Memory is logically divided into 4 segments, stack space segment, heap space segment, code segment, and initialization static segment. Different declarations in the program are placed in different memory segments. The stack space segment occupies the same storage space. Data types that are long and occupy 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 words. Festival. So, where is the data type whose data length is variable and takes up a lot of space placed in that segment of the memory? Such data is placed in the heap memory. Stack memory can be directly accessed, while heap memory is memory that cannot be directly accessed. For our object, it is a large data type and it takes up a variable length of space. Therefore, the object is placed in the heap, but the object name is placed in the stack. In this way, the object name can be used
to use the object.
$p1=new Person();
For this code, $p1 is the object name in the stack memory, new Person() is the real object in the heap memory
, please see the picture below for details:

As can be seen from the picture above, $p1=new Person(); the right side of the equal sign is the real object instance, the entity in the heap memory.
There are a total of 3 times of new Person() in the picture above, so 3 will be opened in the heap space, generating 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 opened in the heap. A space of your own.
Each instance object in the heap stores attributes. For example, the instance objects in the heap now contain last name, gender and age. Each attribute in turn has an address.
$p1=new Person(); The right 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 is the first address of the stored object. The address 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.
6. How to use the members in the object
As seen above, there are two types of members in the PHP object, one is the member attribute and the other is the member method. We have already declared the object. $p1=new Person(); How to use the members of the object? If you want to access the members of the object, you need to use a
special operator "->" to complete the access of the object members:
Object->Properties $p1->name; $p2->age; $p3 ->sex;
Object->Method $p1->say(); $p2->run();
As an example below:
Code snippet

<?php 
class Person{ 
//下面是人的成员属性 
var $name; //人的名字 
var $sex; //人的性别 
var $age; //人的年龄 
//下面是人的成员方法 
function say(){ //这个人可以说话的方法 
echo "这个人在说话"; 
} 
function run(){ //这个人可以走路的方法 
echo "这个人在走路"; 
} 
} 
$p1=new Person(); //创建实例对象$p1 
$p2=new Person(); //创建实例对象$p2 
$p3=new Person(); //创建实例对象$p3 
//下面三行是给$p1对象属性赋值 
$p1->name=”张三”; 
$p1->sex=”男”; 
$p1->age=20; 
//下面三行是访问$p1对象的属性 
echo “p1对象的名字是:”.$p1->name.”<br>”; 
echo “p1对象的性别是:”.$p1->sex.”<br>”; 
echo “p1对象的年龄是:”.$p1->age.”<br>”; 
//下面两行访问$p1对象中的方法 
$p1->say(); 
$p1->run(); 
//下面三行是给$p2对象属性赋值 
$p2->name=”李四”; 
$p2->sex=”女”; 
$p2->age=30; 
//下面三行是访问$p2对象的属性 
echo “p2对象的名字是:”.$p2->name.”<br>” 
echo “p2对象的性别是:”.$p2->sex.”<br>”; 
echo “p2对象的年龄是:”.$p2->age.”<br>”; 
//下面两行访问$p2对象中的方法 
$p2->say(); 
$p2->run(); 
//下面三行是给$p3对象属性赋值 
$p3->name=”王五”; 
$p3->sex=”男”; 
$p3->age=40; 
//下面三行是访问$p3对象的属性 
echo “p3对象的名字是:”.$p3->name.”<br>”; 
echo “p3对象的性别是:”.$p3->sex.”<br>”; 
echo “p3对象的年龄是:”.$p3->age.”<br>”; 
//下面两行访问$p3对象中的方法 
$p3->say(); 
$p3->run(); 
?>
Copy after login

As can be seen from the above example, it is only inside the object Members must be accessed using Object->Properties and Object->Methods. There is no second way to access members in the object.

The above is the complete guide to PHP object-oriented (2) Instantiating objects and using object members. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!



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)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
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)

How to implement object-oriented event-driven programming using Go language How to implement object-oriented event-driven programming using Go language Jul 20, 2023 pm 10:36 PM

How to use Go language to implement object-oriented event-driven programming Introduction: The object-oriented programming paradigm is widely used in software development, and event-driven programming is a common programming model that realizes the program flow through the triggering and processing of events. control. This article will introduce how to implement object-oriented event-driven programming using Go language and provide code examples. 1. The concept of event-driven programming Event-driven programming is a programming model based on events and messages, which transfers the flow control of the program to the triggering and processing of events. in event driven

What is the importance of @JsonIdentityInfo annotation using Jackson in Java? What is the importance of @JsonIdentityInfo annotation using Jackson in Java? Sep 23, 2023 am 09:37 AM

The @JsonIdentityInfo annotation is used when an object has a parent-child relationship in the Jackson library. The @JsonIdentityInfo annotation is used to indicate object identity during serialization and deserialization. ObjectIdGenerators.PropertyGenerator is an abstract placeholder class used to represent situations where the object identifier to be used comes from a POJO property. Syntax@Target(value={ANNOTATION_TYPE,TYPE,FIELD,METHOD,PARAMETER})@Retention(value=RUNTIME)public

Explore object-oriented programming in Go Explore object-oriented programming in Go Apr 04, 2024 am 10:39 AM

Go language supports object-oriented programming through type definition and method association. It does not support traditional inheritance, but is implemented through composition. Interfaces provide consistency between types and allow abstract methods to be defined. Practical cases show how to use OOP to manage customer information, including creating, obtaining, updating and deleting customer operations.

Analyzing the Flyweight Pattern in PHP Object-Oriented Programming Analyzing the Flyweight Pattern in PHP Object-Oriented Programming Aug 14, 2023 pm 05:25 PM

Analyzing the Flyweight Pattern in PHP Object-Oriented Programming In object-oriented programming, design pattern is a commonly used software design method, which can improve the readability, maintainability and scalability of the code. Flyweight pattern is one of the design patterns that reduces memory overhead by sharing objects. This article will explore how to use flyweight mode in PHP to improve program performance. What is flyweight mode? Flyweight pattern is a structural design pattern whose purpose is to share the same object between different objects.

PHP Advanced Features: Best Practices in Object-Oriented Programming PHP Advanced Features: Best Practices in Object-Oriented Programming Jun 05, 2024 pm 09:39 PM

OOP best practices in PHP include naming conventions, interfaces and abstract classes, inheritance and polymorphism, and dependency injection. Practical cases include: using warehouse mode to manage data and using strategy mode to implement sorting.

Analysis of object-oriented features of Go language Analysis of object-oriented features of Go language Apr 04, 2024 am 11:18 AM

The Go language supports object-oriented programming, defining objects through structs, defining methods using pointer receivers, and implementing polymorphism through interfaces. The object-oriented features provide code reuse, maintainability and encapsulation in the Go language, but there are also limitations such as the lack of traditional concepts of classes and inheritance and method signature casts.

Are there any class-like object-oriented features in Golang? Are there any class-like object-oriented features in Golang? Mar 19, 2024 pm 02:51 PM

There is no concept of a class in the traditional sense in Golang (Go language), but it provides a data type called a structure, through which object-oriented features similar to classes can be achieved. In this article, we'll explain how to use structures to implement object-oriented features and provide concrete code examples. Definition and use of structures First, let's take a look at the definition and use of structures. In Golang, structures can be defined through the type keyword and then used where needed. Structures can contain attributes

C# development experience sharing: object-oriented programming and design principles C# development experience sharing: object-oriented programming and design principles Nov 22, 2023 am 08:18 AM

C# (CSharp) is a powerful and popular object-oriented programming language that is widely used in the field of software development. During the C# development process, it is very important to understand the basic concepts and design principles of object-oriented programming (OOP). Object-oriented programming is a programming paradigm that abstracts things in the real world into objects and implements system functions through interactions between objects. In C#, classes are the basic building blocks of object-oriented programming and are used to define the properties and behavior of objects. When developing C#, there are several important design principles

See all articles