


The difference between the usage of static static classes and static static variables in php_PHP tutorial
Static is to define a static object or static variable. We will know the characteristics of the variables or class methods defined by static after reading the relevant examples in this article.
1. Create the object $object = new Class(), and then use "->" to call: $object->attribute/function, provided that the variable/method is accessible.
2. Directly call class methods/variables: class::attribute/function, whether static or non-static. But there are prerequisites:
A. If it is a variable, the variable needs to be accessible.
B. If it is a method, in addition to the method being accessible, it also needs to meet:
b1) If it is a static method, there are no special conditions;
b2) If it is a non-static method, it needs to be changed if it is not used in the method. $this means that non-static variables/methods are not called. Of course, there is no problem with calling static variables/methods.
Then let’s take a look at the difference between using $object->… and using class::…:
1. When using $object->…, you need to execute the constructor to create the object;
2. Use class::... to call static methods/variables, without executing the constructor to create objects;
3. Use class::... to call non-static methods/variables, and there is no need to execute the constructor to create objects.
Then the strange thing comes out. Since 2 and 3 are the same, what is the point of the existence of static methods/variables?
static static
Declaring a class member or method as static allows direct access without instantiating the class. Static members (except static methods) cannot be accessed through an object. Static members belong to the class and do not belong to any object instance, but object instances of the class can be shared.
Example:
The code is as follows | Copy code | ||||||||||||
public static $country = "China";
} }
"; // Output: China$p1 = new Person();//echo $p1->country; // Wrong writing // Access static member method Person::myCountry(); // Output: I am Chinese// Static methods can also be accessed through objects: $p1->myCountry();// Output member attribute values in subclasses echo Student::$country."< ;br />"; // Output: China$t1 = new Student();$t1->study(); // Output: I am Chinese?> |
The code is as follows td> | Copy code | slef:: $country slef:: myCountry() |
The code is as follows | Copy code |
parent:: $countryparent:: myCountry() |
External access to static member attributes and methods is class name/subclass name::, such as:
代码如下 | 复制代码 |
Person::$country Person::myCountry() Student::$country |
But static methods can also be accessed through ordinary objects.
Example of declaring static variables
The code is as follows
|
Copy code
|
|||||||||||||
static $int = 1+2; // wrong (as it is an expression) $int++; echo $int;
?> Example of using static variables
Statement of this Website
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
![]() Hot AI Tools![]() Undresser.AI UndressAI-powered app for creating realistic nude photos ![]() AI Clothes RemoverOnline AI tool for removing clothes from photos. ![]() Undress AI ToolUndress images for free ![]() Clothoff.ioAI clothes remover ![]() AI Hentai GeneratorGenerate AI Hentai for free. ![]() Hot Article
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
Assassin's Creed Shadows: Seashell Riddle Solution
2 weeks ago
By DDD
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
![]() Hot Tools![]() Notepad++7.3.1Easy-to-use and free code editor ![]() SublimeText3 Chinese versionChinese version, very easy to use ![]() Zend Studio 13.0.1Powerful PHP integrated development environment ![]() Dreamweaver CS6Visual web development tools ![]() SublimeText3 Mac versionGod-level code editing software (SublimeText3) ![]() Hot Topics
CakePHP Tutorial
![]() ![]() ![]() JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably, ![]() The difference between multithreading and asynchronous is that multithreading executes multiple threads at the same time, while asynchronously performs operations without blocking the current thread. Multithreading is used for compute-intensive tasks, while asynchronously is used for user interaction. The advantage of multi-threading is to improve computing performance, while the advantage of asynchronous is to not block UI threads. Choosing multithreading or asynchronous depends on the nature of the task: Computation-intensive tasks use multithreading, tasks that interact with external resources and need to keep UI responsiveness use asynchronous. ![]() In C language, the main difference between char and wchar_t is character encoding: char uses ASCII or extends ASCII, wchar_t uses Unicode; char takes up 1-2 bytes, wchar_t takes up 2-4 bytes; char is suitable for English text, wchar_t is suitable for multilingual text; char is widely supported, wchar_t depends on whether the compiler and operating system support Unicode; char is limited in character range, wchar_t has a larger character range, and special functions are used for arithmetic operations. ![]() There is no built-in sum function in C language, so it needs to be written by yourself. Sum can be achieved by traversing the array and accumulating elements: Loop version: Sum is calculated using for loop and array length. Pointer version: Use pointers to point to array elements, and efficient summing is achieved through self-increment pointers. Dynamically allocate array version: Dynamically allocate arrays and manage memory yourself, ensuring that allocated memory is freed to prevent memory leaks. ![]() C language functions are the basis for code modularization and program building. They consist of declarations (function headers) and definitions (function bodies). C language uses values to pass parameters by default, but external variables can also be modified using address pass. Functions can have or have no return value, and the return value type must be consistent with the declaration. Function naming should be clear and easy to understand, using camel or underscore nomenclature. Follow the single responsibility principle and keep the function simplicity to improve maintainability and readability. ![]() In PHP8, match expressions are a new control structure that returns different results based on the value of the expression. 1) It is similar to a switch statement, but returns a value instead of an execution statement block. 2) The match expression is strictly compared (===), which improves security. 3) It avoids possible break omissions in switch statements and enhances the simplicity and readability of the code. ![]() Detailed explanation of XPath search method under DOM nodes In JavaScript, we often need to find specific nodes from the DOM tree based on XPath expressions. If you need to... ![]() Although C and C# have similarities, they are completely different: C is a process-oriented, manual memory management, and platform-dependent language used for system programming; C# is an object-oriented, garbage collection, and platform-independent language used for desktop, web application and game development. ![]() |