PHP: Detailed explanation of the construction method
1, 8 points on the construction method:
①The construction method name is the same as the class name (php4 version),php5 version The constructor method name can be the same as the class name, or it can be construct()
②The constructor method has no return value
③The main function of the constructor method is to complete the Initialization of new objects is not creating the object itself.
④After creating a new object, the system will automatically call the constructor of the class, and there is no need to write your own code to call it
⑤A class has and only one constructor Method, although construct() and classname() can coexist after php5, in fact only one can be used.
⑥If there is no custom construction method for the class, the class uses the system default construction method. */
⑦If a constructor is customized for a class, the default constructor of the class will be overridden.
⑧The default access modifier of the constructor is public
2, in PHP 5 A class can have two forms of constructors at the same time:
construct() and class name(). When both exist at the same time, construct() will be called first. Please use construct() in the future
The two constructors are as follows:
publicfunction construt(){//函数体;} publicfunction 类名(){//函数体;}
## There can only be one form of constructor in PHP4:
public function 类名() { //函数体; }
3. Construction method Notes:
(1 ) Once a constructor is customized, the default constructor will be overwritten. At this time, the customized constructor must be used when creating an object.
(2) A class can only There is a constructor. (Cannot be overloaded)
<?php
//屏蔽程序 notice 级错误
error_reporting(E_ALL^E_NOTICE);
//php面向对象编程之构造方法:
class Person1{
public $name;
public $age;
}
$p1=new Person1();
//再给属性赋值
$p1->name="宋江";
$p1->age=33;
//this的理解:
class Person2
{
public $name;
public $age;
//这个就是构造方法,php5独有
public function construct($iname,$iage)
{
//这里如果我们直接用$name,$age,系统认为我们是创建了两个新的变量
//$name=$iname;
//$age=$iage;
//此处的$this->name、$this->age则解决了以上问题,加上$this之后该变量就是指上面创建的成员属性;
//$this 本质可以理解就是这个对象的地址,哪个对象传递时使用到$this, 就是传递哪个对象地址;
<span style="white-space:pre"> </span>//this就相当于传的是地址,把上面$name的地址传过来了而不是再新建一个$name变量
//注意:$this只能在类中使用,不能在类外部使用.
$this->name=$iname;
$this->age=$iage;
echo "执行构造方法<br/>";
}
}
$p1=new Person2("张清",90);
echo "我是".$p1->name."--我现在的年龄是".$p1->age."<br/>";
$p2=new Person2("宋江",33);
echo "我是".$p2->name."--我现在的年龄是".$p2->age."<br/>";
class Cat
{
//每一个类中必须有一个构造方法,若我们不定义,系统会自动生成
//若不定义构造方法,则该类使用系统默认的构造方法,类中默认的构造方法如下:
function construt()
{
}
}
$cat1=new Cat();
?>
The above is the detailed content of PHP: Detailed explanation of the construction method. For more information, please follow other related articles on the PHP Chinese website!

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


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

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

WebStorm Mac version
Useful JavaScript development tools

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),

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Notepad++7.3.1
Easy-to-use and free code editor
