欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php面向对象笔记

程序员文章站 2024-03-17 16:57:22
...
<?php
class car { //父类

	var $high;   //定义类成员 使用var
	static $price=112233;  //定义静态变量
	function __construct($arg1){   //构造函数
		$this->high = $arg1;//给类成员赋值
	}
	
	function echo_info(){ //输出函数
		echo "汽车的高度".$this->high."<br>";
	}
	
	function echo_text(){
		echo "运行完毕";
	}
	
	function __destruct(){   //析构函数
		print "over";
	}
	
	static function pr($arg,$arg1){  //静态方法
		echo $arg*$arg1;
	}
}

class suncar extends car{ //子类继承父类
	var $color;
	static $number=1;  
	function __construct($arg1){   
		$this->color = $arg1;
	}
	function echo_info(){
		echo "汽车的颜色".$this->color;
		echo "<br>";
		echo "价格=".car::$price;  //调用父类静态变量 
		//echo "价格=".parent::$price; //这两种方式也可以
		//echo "价格=".suncar::$price;
		echo "<br>";
		echo "汽车数量=".suncar::$number; //调用子类静态变量 或者:self::$number  也可以
		echo "<br>";
		echo car::echo_text();   //调用父类方法
		//echo parent::echo_text(); //这两种方式也可以
		//echo suncar::echo_text();
		echo "<br>";
	}
}


$dp = new car("1.2m");//对象实例化
$dp->echo_info();//调用类函数

$xp = new suncar("yellow");
$xp->echo_info();
echo "<hr>";
echo"在类外调用类内的静态变量及静态方法";
echo "<br>";
echo car::pr(1,2);//调用父类静态方法
echo "<br>";
echo car::$price;//调用类静态变量
echo "<br>";
?>

结果:
php面向对象笔记
注意事项:

self与this是被讨论最多,也是最容易引起误用的组合。两者的主要区别如下:
1、this不能用在静态成员函数中,self可以;
2、对静态成员函数/变量的访问,建议 用self,不要用this::this::或this->的形式;
3、对非静态成员变量的访问,不能用self,只能用this;
4、this要在对象已经实例化的情况下使用,self没有此限制;
5、在非静态成员函数内使用,self抑制多态行为,引用当前类的函数;而this引用调用类的重写(override)函数(如果有的话)。

静态方法很好用,不用实例化对象,当类第一次加载的时候就已经给了静态成员空间。但是什么东西都是不能滥用的。因为一旦静态成员声明的过多,空间一直被占用着,那么会影响系统的运行速度和功能,所以切记:东西虽好,可不能贪多哦!

相关标签: php