首页后端开发PHPPHP中静态方法和静态属性如何理解和应用?

PHP中静态方法和静态属性如何理解和应用?

时间2024-03-25 09:22:04发布访客分类PHP浏览1024
导读:这篇文章我们来了解PHP中静态方法和静态属性的相关内容,静态方法和静态属性是PHP学习中的基础知识,因此本文就给大家来介绍一下,下文有详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧! 本教程操作环境:windows7系统...

这篇文章我们来了解PHP中静态方法和静态属性的相关内容,静态方法和静态属性是PHP学习中的基础知识,因此本文就给大家来介绍一下,下文有详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不会被实例化到对象中,也就是说我们不需要实例化一个类,就可以通过类来访问静态成员。

在类中声明静态变量很容易,我们可以在类的普通成员前加一个 static 关键字,就可以将这个普通成员变成静态成员了。这样一来,我们可以在不实例化类的情况下,直接访问类中的这些静态成员。访问静态成员的语法格式如下:

类名::$静态属性
类名::静态方法()

其中::符号被称为范围解析操作符,用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。

如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符self::即可。

下面通过一个简单的示例演示一下静态成员的定义:

?php
header("Content-type:text/html;
    charset=utf-8");

class Website {
    
	static public $name = 'PHP中文网br>
    ';
    
	public $title = 'PHP教程';

	public static function url() {
    
		echo self::$name;
    
		echo 'https://www.php.cn/br>
    ';
    
		echo $this ->
     title;

	}


}
    

Website::url();
    
?>
    

运行结果如下:

注意:在静态方法中,只能调用静态变量,不能调用普通变量;而普通方法则可以调用静态变量。

使用静态成员,除了可以不需要实例化对象外,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用,这一点和我们前面介绍的静态变量相似。

【示例】声明一个静态变量 $num,然后声明一个方法,在方法的内部调用静态变量并给变量的值加 1;然后,实例化类中的对象,最后,调用类中的方法。

?php
header("Content-type:text/html;
    charset=utf-8");

class Website {
    
	static public $num = 0;

	public function add() {
    
		echo '$num 的值为:' . self::$num;
    
		self::$num++;

	}


}
    

$num1 = new Website();
    
$num1 ->
     add();
    
echo 'br>
    ';
    
$num2 = new Website();
    
$num2 ->
     add();
    
?>
    

运行结果如下:

静态成员不用实例化对象,当类第一次被加载时就已经分配了内存空间,所以直接调用静态成员的速度要更快一些。但如果静态成员声明得过多,空间一直被占用,反而影响系统的运行速度。

说明:

  • 子类可以重写父类的静态方法.

  • 方法内访问静态变量需要用::符号. 不能用$this;

  • 静态方法和静态变量都会被子类继承.

  • 静态变量不能由-> 访问, 而是由 ::(双冒号)进行访问

  • 对象可以通过对象名-> 来直接调用静态成员方法, 这个和调用普通方法是一样的.

现在大家对于PHP中静态方法和静态属性应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多,大家可以关注网络其它相关文章。

文本转载自PHP中文网

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PHP中静态方法和静态属性如何理解和应用?
本文地址: https://pptw.com/jishu/652686.html
php中去除数组中为0的元素的方法是什么? php怎么修改word的?具体方法是什么?

游客 回复需填写必要信息