


Detailed explanation of the difference between php abstract and interface
This article is a detailed analysis and introduction to the difference between abstract and interface in PHP. Friends in need can come and refer to it. I hope it will be helpful to everyone.
1.php InterfaceClass:interface
In fact, their role is very simple. When many people develop a project together, they may all call some classes written by others, then you will ask, How do I know how to name the implementation method of a certain function? At this time, the PHP interface class comes into play. When we define an interface class, the methods in it must be implemented by the following subclasses. For example:
The code is as follows:
interface Shop { public function buy($gid); public function sell($gid); public function view($gid); }
I declare a shop interface class and define three methods: buy, sell, view ), then All subclasses that inherit must implement any of these three methods. If the subclass does not implement these, it will not work. In fact, the interface class is, to put it bluntly, the template of a class and the regulations of a class. If you belong to this category, you must follow my regulations. No matter how you do it, I don’t care how you do it. That’s up to you. Things like:
The code is as follows:
class BaseShop implements Shop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } }
Think about it, in a large project where many people collaborate, it is so convenient to have interface classes. In this way, you don't have to ask others what the method name of your certain function is. Of course, if you like this, I can't help it.
Conclusion: The interface class is the leader of a class, indicating the direction, and the subclass must complete its designated method.
2.php Abstract class : abstract
In fact, abstract classes and interface classes are partly similar. Remember where you saw this? In one sentence, abstract class extracts the part of the class image. This sentence looks funny, but in fact it tells the truth of abstract class. The function of abstract class is that when you find that many of your classes use many methods, you will continue to use them. If you are writing repeatedly, then you can consider using abstract classes. You may say, "Isn't it possible for me to rewrite a class? For each public class, I instantiate this public class and call the same method." Here Yes, in fact this is what the abstract class does, but it saves you the step of instantiation, making it as convenient as directly calling the method of this class, and you can alsooverload this way. For example:
The code is as follows:
abstract class BaseShop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } } class BallShop extends BaseShop { var $itme_id = null; public function construct() { $this->itme_id = 2314; } public function open() { $this->sell($this->itme_id); } }
Here is an example. Like the above, I defined a store class and extracted all its images like part, buy, sell, view, and these methods are implemented in the abstract class, then the subclass that inherits it will automatically obtain these methods, and the subclass will do its own unique things , introduce the duplication of code and improve reusability.
Conclusion: An abstract class is a service provider of a class. It has many services. You don’t have to use them. You can use them when you need them. If If you feel dissatisfied if the service is not provided, you can still do it yourself. The abstract function method is somewhat similar to the interface. It is a method declared in the parent class and must be implemented in the subclass. However, methods not declared with abstract will become public methods of the subclass, and there is no need to implement them in the subclass
The above is the detailed content of Detailed explanation of the difference between php abstract and interface. For more information, please follow other related articles on the PHP Chinese website!

PHP remains a powerful and widely used tool in modern programming, especially in the field of web development. 1) PHP is easy to use and seamlessly integrated with databases, and is the first choice for many developers. 2) It supports dynamic content generation and object-oriented programming, suitable for quickly creating and maintaining websites. 3) PHP's performance can be improved by caching and optimizing database queries, and its extensive community and rich ecosystem make it still important in today's technology stack.

In PHP, weak references are implemented through the WeakReference class and will not prevent the garbage collector from reclaiming objects. Weak references are suitable for scenarios such as caching systems and event listeners. It should be noted that it cannot guarantee the survival of objects and that garbage collection may be delayed.

The \_\_invoke method allows objects to be called like functions. 1. Define the \_\_invoke method so that the object can be called. 2. When using the $obj(...) syntax, PHP will execute the \_\_invoke method. 3. Suitable for scenarios such as logging and calculator, improving code flexibility and readability.

Fibers was introduced in PHP8.1, improving concurrent processing capabilities. 1) Fibers is a lightweight concurrency model similar to coroutines. 2) They allow developers to manually control the execution flow of tasks and are suitable for handling I/O-intensive tasks. 3) Using Fibers can write more efficient and responsive code.

The PHP community provides rich resources and support to help developers grow. 1) Resources include official documentation, tutorials, blogs and open source projects such as Laravel and Symfony. 2) Support can be obtained through StackOverflow, Reddit and Slack channels. 3) Development trends can be learned by following RFC. 4) Integration into the community can be achieved through active participation, contribution to code and learning sharing.

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP is not dying, but constantly adapting and evolving. 1) PHP has undergone multiple version iterations since 1994 to adapt to new technology trends. 2) It is currently widely used in e-commerce, content management systems and other fields. 3) PHP8 introduces JIT compiler and other functions to improve performance and modernization. 4) Use OPcache and follow PSR-12 standards to optimize performance and code quality.

The future of PHP will be achieved by adapting to new technology trends and introducing innovative features: 1) Adapting to cloud computing, containerization and microservice architectures, supporting Docker and Kubernetes; 2) introducing JIT compilers and enumeration types to improve performance and data processing efficiency; 3) Continuously optimize performance and promote best practices.


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

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

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.

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

SublimeText3 Linux new version
SublimeText3 Linux latest version

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.

Atom editor mac version download
The most popular open source editor