PHP面向对象关键词static self

Posted 程昱仲德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP面向对象关键词static self相关的知识,希望对你有一定的参考价值。

知识点:

一、static可以修饰类内的属性或方法,被修饰的属性或方法在类外部,不能被实例化成对象访问,而是使用类本身进行访问,而静态的方法如果想使用静态的属性,则需要用self::这样的写法来访问静态属性,self即代表类本身,而不是$this,$this意为实例化后的对象本身,两者有很大区别。

二、self即类本身,使用self可以帮助方法调用静态属性(因为静态属性只能被类访问)

代码:

<?php
class Test{
	
	static $one = ‘q‘;
	
	public function __construct(){
		
		
	}
	
	static function test(){
		
		echo ‘测试成功!‘;
	}
	
	public function getone(){
		
		return self::$one;
		
	}
	
}

echo Test::$one;//属性访问成功
Test::test();//方法执行成功
$a = new Test(‘s‘);
$res = $a->getone();
echo $res;//属性访问成功

?>

意义:

项目中遇到很多一成不变的程序功能(例如:数据库连接),我们传入的参数相较其他程序总是传入固定参数,每次new这个类总会消耗一些资源,如果可以的话,我们想事先实例化好一个对象,每次程序需要他的时候直接对这个对象进行调用,那就OK了,这里就需要使用self+static实现对原本的类进行一些修改,使这个类自动生成对象,而我们使用这个对象即可。这个思想即单例模式。

以上是关于PHP面向对象关键词static self的主要内容,如果未能解决你的问题,请参考以下文章

PHP面向对象编程

PHP面向对象编程之延迟静态绑定(static关键字)

PHP面向对象编程之延迟静态绑定(static关键字)

PHP static 和 self的区别

PHP面向对象编程简单实例

PHP 中的 $this, static , self ,parent 等等关键字的总结