+------------------------------------------------- --------------------+
| = This article is Haohappy's notes on the chapter Classes and Objects in <
| = Mainly translated + personal experience
| = To avoid unnecessary trouble that may occur, please do not reprint, thank you
| = Criticisms and corrections are welcome, and we hope to make progress together with all PHP enthusiasts!
| = PHP5 Research Center: http: //blog.csdn.net/haohappy2004
+--------------------------------------- ----------------------------------+
*/
Section 1--Object-oriented programming
Object-oriented programming is designed to Provide solutions for large software projects, especially projects involving multiple people. When the source code grows to 10,000 lines or more, every change may cause undesirable side effects. This happens when the module When they formed a secret alliance, it was like Europe before World War I.
//haohappy Note: It means that the correlation between modules is too high and the interdependence is too strong. Changing one module will cause other modules to also be updated.
Imagine if a module that handles logins allows a credit card processing module to share its database connection. Of course the intention is good, saving the expense of making another database connection. However sometimes, the login processing module changes If the name of one of the variables is changed, the agreement between the two may be severed, resulting in an error in the processing of the credit card module, which in turn leads to an error in the module that processes invoices. Soon, all irrelevant modules in the system may error due to this.
Therefore , I think it's a bit dramatic that most programmers are grateful for coupling and encapsulation. Coupling is a measure of the degree of dependence between two modules. The less coupling the better. We hope to be able to take one away from existing projects module and use it in another new project.
We also hope to make large-scale changes within a certain module without worrying about the impact on other modules. The principle of encapsulation can provide this solution. Modules are treated as relatively independent, and Data communication between modules occurs through interfaces. Modules don't peek into each other's variable names, they politely send requests through functions.
Encapsulation is a principle you can use in any programming language. In PHP and In many procedural languages, it's tempting to be lazy. There's nothing stopping you from building a hypothetical WEB through modules. Object-oriented programming is a way for programmers to not violate the principle of encapsulation.
In object-oriented programming In programming, modules are organized into objects. These objects have methods and attributes. From an abstract point of view, methods are the actions of an object, and attributes are the characteristics of the object. From a programming point of view, methods are Functions and properties are variables. In an ideal object-oriented system, each part is an object. The system consists of objects and the relationships between objects through methods.
A class defines the properties of the object. If you When baking a set of cookie objects, the class will be a cookie maker. The properties and methods of the class are the members that are called. One can express this by saying data members or method members.
Each language provides different Ways to access objects. PHP borrows concepts from C++ and provides a data type to contain functions and variables under an identifier. When PHP was originally designed, and even when PHP3 was developed, PHP was not intended to provide the ability to develop large projects with more than 100,000 lines of code. With the development of PHP and Zend engine, it has become possible to develop large projects, but no matter how big your project is, writing your scripts in classes will allow code reuse. This is a good idea, especially if you are willing to share your code with others.
The idea of objects is one of the most exciting concepts in computer science. It's hard to master it at first, but I can guarantee that once you do, thinking with its mind will feel very natural.
The above introduces the process-oriented section 1 - object-oriented programming, including process-oriented content. I hope it will be helpful to friends who are interested in PHP tutorials.