码迷,mamicode.com
首页 > Web开发 > 详细

PHP面向对象关键词static 、self

时间:2017-06-03 12:48:53      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:方法调用   实例   事先   one   固定   实例化   属性   访问   面向对象   

知识点:

一、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

标签:方法调用   实例   事先   one   固定   实例化   属性   访问   面向对象   

原文地址:http://www.cnblogs.com/chengzhongde/p/6936780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!