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人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦