


Copy the code The code is as follows:
/*
* Encapsulation: one of the three major characteristics of object-oriented
*
* 1. It is to combine the members (properties, methods) of the object into An independent and identical unit, and hide the internal details of the object as much as possible
* Access permission modifier public protected private
* private: private, members modified with this keyword can only be accessed within the object (only accessed with $this )
*
* Attributes can be encapsulated:
* As long as a variable needs to be used in multiple methods, declare this variable as a member attribute, which can be used directly in all methods in this object
*
* Member attribute, equivalent The global variables in this object
*
* The member attributes will all be used in the method. The change of the member attribute value is actually changing the execution behavior of the method, that is, changing the function of the object
*
* If the value of the member attribute is not Normal, the function executed by the method is abnormal
*
* Function: No need to change or read its value outside the object
* 1. Encapsulate
* and then provide a public method (assign the object member attributes through the method and the value can be controlled)
*
*
* Methods can also be encapsulated
*
* Function:
* 1. Use private modification so that it can only be used internally
*
* 2. There are 100 methods in a class , encapsulating 95 (methods that serve the other 5), only 5 methods can be used
*
* 100 member attributes, all allow values to be obtained, and the values cannot be changed; or the values can only be changed, but the values cannot be obtained/ /In this case, it is more convenient to use the following methods
* Magic methods related to encapsulation:
*
* __set();//It is a method that is automatically called when directly setting the [private] member attribute value
* __get() ;//This is a method that is automatically called when directly obtaining [private] member attribute values
* __isset();//This method is automatically called when directly using isset() to check whether the private attributes in the object exist
* __unset( );//It is a method automatically called when unset() is used directly to delete private properties in an object
*
*
*
*
*
*
*
*/
class Person{
//x encapsulates member attributes, No need to change outside the object
private $name;
private $age;
private $sex;
private __unset($proName){
unset($this->$proName);
}
//View the object directly This method is automatically called when the private attribute exists in
//Usage of __isset($proName), $proName represents the attribute name
private function __isset($proName){
return isset($this->$proName);/ /isset() returns whether it exists
}
function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this-> ;sex=$sex;
}
//When obtaining private member attributes, this method is automatically called
private function __get($proName)
{
//Control the obtained value
if($pr
if($ this-age>40)
return $this->age-10;
}
return $this->$proName;
}
//When setting private member properties, this method is automatically called
private function __set ($proName,$proValue){
//$proName represents the member attribute name, $proValue represents the member attribute value
//Control the setting range
if($pr
if($proValue > 100 || $proValuereturn;
}
$this->$pr
}
//Provide public methods to set the value of member attributes
function setAge($age){
//Control the age range and increase security
if($age > 100 || $age return;
$this->age=$age;
}
//Provide public methods to get the value of member attributes
function getAge(){
//Control acquisition Age range
if($this->age return $this->age;
else if($this->agereturn $this->age-5;
else if($this->agereturn $this->age;
else
return $this->age-15;
Provide public methods to}
function say(){
echo "I My name: {$this->name}, my age: {$this->age}, my last name: {$this->sex}
";
//Access encapsulated The run() method
$this-run();
}
private function run(){
echo '111111111111
'
}
function eat(){
}
//Destruction method
function __destruct( ){
}
}
$p1=new Person("zhangsan",25,"male");
$p2=new Person;
$p3=new Person;
//$p1->age=-50 ;//Because the age can be accessed from the outside at will, the member attributes are encapsulated for security.
$p1->setAge(30);//Set the member attribute value through the method
$p1->getAge();//Get the member attribute value through the method
//By adding the magic method_ _set($proName,$proValue) __get($proName), you can directly call member attributes
$p1->say();//You can call
$p1->run();//Private method It cannot be called directly
//Delete the name in $p1
unset($p1->name);
//Determine whether the name exists
if(isset($p1->name)){
echo "Exists";
}else{
echo "There is no such member
";
}
?>
Author: Codename Aurora
Source: http://zizhuyuan.cnblogs.com
The above introduces the photoshop learning experience, php learning notes, and the application of one of the three major object-oriented features in PHP [encapsulation], including the photoshop learning experience. I hope it will be helpful to friends who are interested in PHP tutorials.

TooptimizePHPcodeforreducedmemoryusageandexecutiontime,followthesesteps:1)Usereferencesinsteadofcopyinglargedatastructurestoreducememoryconsumption.2)LeveragePHP'sbuilt-infunctionslikearray_mapforfasterexecution.3)Implementcachingmechanisms,suchasAPC

PHPisusedforsendingemailsduetoitsintegrationwithservermailservicesandexternalSMTPproviders,automatingnotificationsandmarketingcampaigns.1)SetupyourPHPenvironmentwithawebserverandPHP,ensuringthemailfunctionisenabled.2)UseabasicscriptwithPHP'smailfunct

The best way to send emails is to use the PHPMailer library. 1) Using the mail() function is simple but unreliable, which may cause emails to enter spam or cannot be delivered. 2) PHPMailer provides better control and reliability, and supports HTML mail, attachments and SMTP authentication. 3) Make sure SMTP settings are configured correctly and encryption (such as STARTTLS or SSL/TLS) is used to enhance security. 4) For large amounts of emails, consider using a mail queue system to optimize performance.

CustomheadersandadvancedfeaturesinPHPemailenhancefunctionalityandreliability.1)Customheadersaddmetadatafortrackingandcategorization.2)HTMLemailsallowformattingandinteractivity.3)AttachmentscanbesentusinglibrarieslikePHPMailer.4)SMTPauthenticationimpr

Sending mail using PHP and SMTP can be achieved through the PHPMailer library. 1) Install and configure PHPMailer, 2) Set SMTP server details, 3) Define the email content, 4) Send emails and handle errors. Use this method to ensure the reliability and security of emails.

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.


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

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 English version
Recommended: Win version, supports code prompts!
