The difference in usage between php static methods and non-static methods

怪我咯
Release: 2023-03-12 17:50:02
Original
2368 people have browsed it

The following editor will bring you a brief analysis of the usage differences between php static methods and non-static methods. The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor and take a look.

In PHP programming, thestatic keyworddeclares aattributeor method that is related to the class, not to the class Relevant to a specific instance, therefore, such attributes or methods are also called "class attributes" or "class methods"

Ifaccess controlpermissions allow, you do not need to create this classObjectAnd directly use the class name plus two colons "::" to call.

The static keyword can be used to modify variables and methods.

You can directly access the static attributes and static methods in the class without instantiation.

static'sproperties and methodscan only access static properties and methods, but cannot access non-static properties and methods. Because when static properties and methods are created, there may not yet be any instances of this class that can be called.

static properties have only one copy in memory and are shared by all instances.

Use the self:: keyword to access static members of the current class.

All instances of a class share static properties in the class.

That is, even if there are multiple instances in the memory, there is only one copy of the static attributes.

Example, set a counter $count attribute, set private and static modifications.

In this way, the outside world cannot directly access the $count attribute. The result of running the program also shows that multiple instances are using the same static $count attribute.

getcount() . " user"; echo "
"; unset($user3); echo "now here have " . $user1->getcount() . " user"; ?>
Copy after login


Second, static properties are called directly

Static properties can be used directly without instantiation, and can be used directly before the class is created.

Usage:

Class name:: Static property name

"; echo math::$pi * $r * $r; echo "

"; //这里我觉得 3.14 不够精确,我把它设置的更精确。 math::$pi = 3.141592653589793; echo "半径是 $r 的面积是
"; echo math::$pi * $r * $r; ?>
Copy after login

The class is not created, and the static properties can be used directly. When are static properties created in memory?

I didn’t see any relevant information in php.

Quoting concepts in java to explain should also be universal. Static properties and methods are created when the class is called.

3. Static methods

Static methods can be used directly without the class being instantiated.

The method used is class name::static method name

Continue to write this math class for mathematical calculations.

Design a method to calculate the maximum value. Since it is a mathematical operation, there is no need to instantiate this class. It would be much more convenient if this method can be taken over and used.

This is a class designed just to demonstrate the static method. PHP provides the max() function to compare numerical values.

 $num2 ? $num1 : $num2; } } $a = 99; $b = 88; echo "显示 $a 和 $b 中的最大值是"; echo "
"; echo math::max($a, $b); echo "
"; echo "
"; echo "
"; $a = 99; $b = 100; echo "显示 $a 和 $b 中的最大值是"; echo "
"; echo math::max($a,$b); ?>
Copy after login

How static methods call static methods

The first example, when a static method calls other static methods, use self::

 $num2 ? $num1 : $num2; } public static function max3($num1, $num2, $num3) { $num1 = self::max($num1, $num2); $num2 = self::max($num2, $num3); $num1 = self::max($num1, $num2); return $num1; } } $a = 99; $b = 77; $c = 88; echo "显示 $a $b $c 中的最大值是"; echo "
"; echo math::max3($a, $b, $c); ?>
Copy after login

Static methods call static properties

Use self:: to call the static properties of this class.

Copy after login

Static methods cannot call non-static properties. Non-static properties cannot be called using self::.

Copy after login

You cannot also use $this to obtain the value of non-static properties.

Static methods call non-static methods

In PHP5, the $this identifier cannot be used in static methods to call non-static methods.

"; return $num1 > $num2 ? $num1 : $num2; } public static function max3($num1, $num2, $num3) { $num1 = $this->max($num1, $num2); $num2 = $this->max($num2, $num3); $num1 = $this->max($num1, $num2); return $num1; } } $a = 99; $b = 77; $c = 188; echo "显示 $a $b $c 中的最大值是"; echo "
"; echo math::max3($a, $b, $c); //同样的这个会报错 ?>
Copy after login

When a non-static method in a class is called by self::, the system will automatically convert this method into a static method.

 $num2 ? $num1 : $num2; } public static function max3($num1, $num2, $num3) { $num1 = self::max($num1, $num2); $num2 = self::max($num2, $num3); $num1 = self::max($num1, $num2); return $num1; } } $a = 99; $b = 77; $c = 188; echo "显示 $a $b $c 中的最大值是"; echo "
"; echo math::max3($a, $b, $c); ?>
Copy after login

The above is the detailed content of The difference in usage between php static methods and non-static methods. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!