为了账号安全,请及时绑定邮箱和手机立即绑定

php面向对象(二)

标签:
PHP

7.1 类和对象《二》

这一课主要讲解构造函数、析沟函数和静态变量

7.1.1 构造函数

类里面可以定义多个全局变量,这些变量可以设置默认值,同时用户也可以在声明对象的时候,把值传进来赋给全局变量。这个赋值的过程,就是通过构造函数实现的。
构造函数名是固定的,必须为:void __construct (…) 其中的省略号就是参数。

<?php 
	class MyClass
	{
		//定义年龄
		public $age = 18;
		//构造函数,用于让用户自定义年龄。
		function __construct($uerAge) {
			$this->age = $uerAge;
		}
	}
	//new对象的时候,把年龄传进去
	$obj = new MyClass(20);
	//输出20
	echo $obj->age;
?>

7.1.2 构造函数的参数支持默认值

<?php 
	class MyClass
	{
		//定义年龄
		public $age = 18;
		//构造函数,用于让用户自定义年龄。
		function __construct($uerAge=22) {
			$this->age = $uerAge;
		}
	}
	//new对象的时候,不传参数,则用默认参数
	$obj = new MyClass();
	//输出22
	echo $obj->age;
?>

7.2.1 析构函数

析构函数是对象被销毁的时候,系统默认执行的。
析构函数的格式为固定的 function __destruct()
析构函数一般不带参数。
执行析构函数,一般是在对象销毁的时候,例如:
释放内存,断开网络连接等。

<?php 
	class MyClass
	{
		//构造函数,用于让用户自定义年龄。
		function __construct() {
			print "__construct function";
		}
		function __destruct() {
			print "__destruct function";
		}
	}
	//打印出构造函数和析构函数的执行顺序
	$obj = new MyClass();
?>

7.3.1 静态变量

静态变量是同一个类的所有对象,所共享的变量。也就是所有对象的静态变量的值都是一样的。

7.3.2 外部调用静态变量的方法

<?php 
	class MyClass
	{
		//定义静态变量,所有对象共享
		public static $password = "1234567";
		public static function getPassword(){
			//内部调用用关键字self::来获取静态变量
			return self::$password;
		}
	}
	//如果是public的静态变量,可以直接获取
	echo MyClass::$password;
	$obj = new MyClass();
	//通过对象来调取静态变量
	echo $obj->getPassword();
?>

7.4 作业

7.4.1 定义一个类,类里面定义一个变量$age。通过构造函数来给该静态变量赋初值,然后定义两个函数,一个函数修改该变量,一个函数获取该变量。然后定义两个对象,一个对象修改该变量之后,通过第二个对象来打印这个变量有没有被改变。

<?php  
	class Person{
		// 定义一个表示年龄的变量,
		// 通过构造函数来初始化他
		public $age;
		public function __construct($age){
			$this->age = $age;
		}

		// 获取$age 属性
		public function get(){
			return $this->age;
		}

		// 设置 $age 属性
		public function set($value){
			$this->age = $value;
		}
	}

	// 实例化对象
	$p1 = new Person(18);
	var_dump($p1);//object(Person)#1 (1) { ["age"]=> int(18) }
	$p1->set(20);
	echo $p1->get();//20

	$p2 = new Person(18);
	echo $p2->get();//18
?>

<?php  
	class People{
		// 声明静态变量
		public static $age = 18;
		// public function __construct($age){
		// 	People::$age = $age;
		// }

		// 获取类的静态变量
		function get(){
			return People::$age;
		}
		// 设置类的静态变量
		function set($value){
			People::$age = $value;
		}
	}

	$p = new People();
	echo People::$age;//18
	var_dump($p);//object(People)#3 (0) { }

	// 设置值
	$p->set(20);

	// 获取值
	echo $p->get();//20

?>
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
23
获赞与收藏
130

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消