search
HomeBackend DevelopmentPHP TutorialPHP study notes (3)_PHP tutorial

There are many differences between PHP classes and other languages. PHP allows a very strange way to call instance methods in static methods, and provides the keywords self and static for accessing static members of the class itself. Self always refers to the current class, while static may point to a derived class. This is also a strange place. Static members can be inherited and overridden.

PHP also provides some magic methods starting with double underscores (including constructors and some built-in "interfaces"). The following are PHP's existing magic methods:

1, __construct($args) and __destruct(void)

That is, the constructor and destructor methods are the same as other languages. The constructor is called when instantiating and the destructor is called when the object is recycled. The destructor method can be used to automatically reclaim resources after execution, such as closing some resources referenced by pointers.

2. mixed __call (string $name , array $arguments) and mixed __callStatic (string $name , array $arguments)

If a method that does not exist in an object or a static method that does not exist in the class is called, the above two methods will be called respectively. These two methods allow you to use some special dynamic operation mechanisms to make methods come out of nowhere. Personally, it is recommended to use them as little as possible. They will make the code difficult to maintain and cannot be supported by IDE.

3. mixed __get (string $name) and __set (string $name , mixed $value )

Like __call, they are executed when calling properties that do not exist. It is also recommended to use them sparingly.

4. bool __isset (string $name) and __unset (string $name)

When isset() or empty() is called on a property that does not exist in the object, __isset() will be called. __unset is called when unset is called.

5, array __sleep (void) and __wakeup (void )

These two methods will be called before and after serialization respectively, and can be used to organize the properties of the object to be serialized and restore the state after serialization.

6. string __toString (void)

It tells PHP how to convert the object when it needs to be converted to a string, like echo new MyClass();

7. mixed __invoke ()

This method is called when an object variable is called as a function.

8, object __set_state (array $properties)

When var_export() is called on an object, it will be called and replace the object itself with the return value, allowing it to organize the data of the exported variable.

9. __clone()

Using this method allows us to copy objects while also making deep copies of attributes, similar to the ICloneable interface in .net.

About automatic loading:

PHP itself does not have an automatic loading mechanism, but the new version provides the spl_autoload_register function to register a function. The registered function is called when a non-existing class is used. Developers need to manually implement the loading mechanism in the function. The author has not deeply understood the mechanism of include. If it is also necessary to detect whether a file exists, it may make the operation efficiency lower.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/748242.htmlTechArticlePHP classes have many differences from other languages. PHP allows a very strange way to call instance methods in static methods, and provides the keywords self and static for accessing static members of the class itself. sel...
Statement
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
What data can be stored in a PHP session?What data can be stored in a PHP session?May 02, 2025 am 12:17 AM

PHPsessionscanstorestrings,numbers,arrays,andobjects.1.Strings:textdatalikeusernames.2.Numbers:integersorfloatsforcounters.3.Arrays:listslikeshoppingcarts.4.Objects:complexstructuresthatareserialized.

How do you start a PHP session?How do you start a PHP session?May 02, 2025 am 12:16 AM

TostartaPHPsession,usesession_start()atthescript'sbeginning.1)Placeitbeforeanyoutputtosetthesessioncookie.2)Usesessionsforuserdatalikeloginstatusorshoppingcarts.3)RegeneratesessionIDstopreventfixationattacks.4)Considerusingadatabaseforsessionstoragei

What is session regeneration, and how does it improve security?What is session regeneration, and how does it improve security?May 02, 2025 am 12:15 AM

Session regeneration refers to generating a new session ID and invalidating the old ID when the user performs sensitive operations in case of session fixed attacks. The implementation steps include: 1. Detect sensitive operations, 2. Generate new session ID, 3. Destroy old session ID, 4. Update user-side session information.

What are some performance considerations when using PHP sessions?What are some performance considerations when using PHP sessions?May 02, 2025 am 12:11 AM

PHP sessions have a significant impact on application performance. Optimization methods include: 1. Use a database to store session data to improve response speed; 2. Reduce the use of session data and only store necessary information; 3. Use a non-blocking session processor to improve concurrency capabilities; 4. Adjust the session expiration time to balance user experience and server burden; 5. Use persistent sessions to reduce the number of data read and write times.

How do PHP sessions differ from cookies?How do PHP sessions differ from cookies?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

How does PHP identify a user's session?How does PHP identify a user's session?May 01, 2025 am 12:23 AM

PHPidentifiesauser'ssessionusingsessioncookiesandsessionIDs.1)Whensession_start()iscalled,PHPgeneratesauniquesessionIDstoredinacookienamedPHPSESSIDontheuser'sbrowser.2)ThisIDallowsPHPtoretrievesessiondatafromtheserver.

What are some best practices for securing PHP sessions?What are some best practices for securing PHP sessions?May 01, 2025 am 12:22 AM

The security of PHP sessions can be achieved through the following measures: 1. Use session_regenerate_id() to regenerate the session ID when the user logs in or is an important operation. 2. Encrypt the transmission session ID through the HTTPS protocol. 3. Use session_save_path() to specify the secure directory to store session data and set permissions correctly.

Where are PHP session files stored by default?Where are PHP session files stored by default?May 01, 2025 am 12:15 AM

PHPsessionfilesarestoredinthedirectoryspecifiedbysession.save_path,typically/tmponUnix-likesystemsorC:\Windows\TemponWindows.Tocustomizethis:1)Usesession_save_path()tosetacustomdirectory,ensuringit'swritable;2)Verifythecustomdirectoryexistsandiswrita

See all articles

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

Video Face Swap

Video Face Swap

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

Hot Tools

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use