


PHP object-oriented guide (2) Instantiating objects and using object members
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();
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(); ?>
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)!

Reasons for PHPSession failure include configuration errors, cookie issues, and session expiration. 1. Configuration error: Check and set the correct session.save_path. 2.Cookie problem: Make sure the cookie is set correctly. 3.Session expires: Adjust session.gc_maxlifetime value to extend session time.

Methods to debug session problems in PHP include: 1. Check whether the session is started correctly; 2. Verify the delivery of the session ID; 3. Check the storage and reading of session data; 4. Check the server configuration. By outputting session ID and data, viewing session file content, etc., you can effectively diagnose and solve session-related problems.

Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

Configuring the session lifecycle in PHP can be achieved by setting session.gc_maxlifetime and session.cookie_lifetime. 1) session.gc_maxlifetime controls the survival time of server-side session data, 2) session.cookie_lifetime controls the life cycle of client cookies. When set to 0, the cookie expires when the browser is closed.

The main advantages of using database storage sessions include persistence, scalability, and security. 1. Persistence: Even if the server restarts, the session data can remain unchanged. 2. Scalability: Applicable to distributed systems, ensuring that session data is synchronized between multiple servers. 3. Security: The database provides encrypted storage to protect sensitive information.

Implementing custom session processing in PHP can be done by implementing the SessionHandlerInterface interface. The specific steps include: 1) Creating a class that implements SessionHandlerInterface, such as CustomSessionHandler; 2) Rewriting methods in the interface (such as open, close, read, write, destroy, gc) to define the life cycle and storage method of session data; 3) Register a custom session processor in a PHP script and start the session. This allows data to be stored in media such as MySQL and Redis to improve performance, security and scalability.

SessionID is a mechanism used in web applications to track user session status. 1. It is a randomly generated string used to maintain user's identity information during multiple interactions between the user and the server. 2. The server generates and sends it to the client through cookies or URL parameters to help identify and associate these requests in multiple requests of the user. 3. Generation usually uses random algorithms to ensure uniqueness and unpredictability. 4. In actual development, in-memory databases such as Redis can be used to store session data to improve performance and security.

Managing sessions in stateless environments such as APIs can be achieved by using JWT or cookies. 1. JWT is suitable for statelessness and scalability, but it is large in size when it comes to big data. 2.Cookies are more traditional and easy to implement, but they need to be configured with caution to ensure security.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Atom editor mac version download
The most popular open source editor

WebStorm Mac version
Useful JavaScript development tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
