批改状态:未批改
老师批语:
通过今天的学习,我学会了类的创建和实例,类常量和静态属性的创建和调用,以及类的继承与方法的重写,具体代码如下
1,类声明与类的实例化
<?php
/**
* 类的声明与实例化
* 1. 类声明: class;
* 2. 类的实例化: new
* 3. 对象成员的访问:->
*/
//用关键字class声明一个类
class Demo1
{
}
//用关键字 new 实例化一个类
$demo1 = new Demo1();
//给当前对象添加一些属性和方法
$demo1->name = '朱老师';
$demo1->sex = '男';
$demo1->hello = function(){
return '我是一个自定义的类方法';
};
//使用对象访问符:-> 来访问对象中的成员(属性和方法)
echo $demo1->name,': ',$demo1->sex,'<br>';
//错误的调用方式,因为当前对象方法不是一个普通函数,而是一个对象方法
//echo $demo1->hello();
//正确的调用方式,对象方法应该以回调的方式运行
echo call_user_func($demo1->hello);点击 "运行实例" 按钮查看在线实例
2,类的继承与方法重写
<meta charset="UTF-8">
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/9/4
* Time: 11:52
*/
//父类
class test
{
//属性常量
const PAGE_NAME='WELCOME TO HANGZHOU';
private $name;
private $age;
public function __construct($name,$age)
{
$this->name=$name;
$this->age=$age;
}
public function __get($name)
{
return $this->name;
}
public function __set($name, $value)
{
// TODO: Implement __set() method.
return $this->$name=$value;
}
public function showResult()
{
return '我爱你,中国!';
}
}
class show extends test{
private $sex;
// 子类构造函数
function __construct($name, $age,$sex='男')
{
//父类的构造方法
parent::__construct($name, $age);
$this->sex=$sex;
}
}
echo '父类类调用';
$result=new test('小红',12);
//方法重载设置值
$result->name='小军';
echo $result->name;
echo '<hr>';
echo '子类调用';
$show=new show('小米','55');
echo '姓名:',$show->name='小红'.'<br>';
echo '性别:',$show->sex='女';
echo '<br>'. '子类调用父类方法','<br>';
//子类调用父类方法
echo $show->showResult();点击 "运行实例" 按钮查看在线实例
3,类常量与类属性的重载
<meta charset="UTF-8">
<?php
class lianxi1{
//定义一个常量变量
const TITTLE_NAME='WELCOME TO MY HOME!';
//定义三个变量,分别访问范围府为public private ,protected
public $name;
private $age;
protected $sex;
//构造函数,类加载的时候进行初始化变量和方法
public function __construct($name,$age,$sex='男')
{
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
$this->show();
}
function show()
{
return '姓名:'.$this->name.'年龄:'.$this->age.'性别:'.$this->sex;
}
//获取属性重载方法
public function __get($name)
{
return $this->$name;
}
//设置属性重载方法
public function __set($name, $value)
{
// TODO: Implement __set() method.
return $this->$name=$value;
}
// 检测属性重载方法
public function __isset($name)
{
return isset($name)?$name:'没有访问权限';
}
//删除属性重载方法
public function __unset($name)
{
if ($name='name')
{
unset($this->$name);
}
else
{
return false;
}
}
}
//调用常量方法
echo '输出常量变量:',lianxi1::TITTLE_NAME;
echo '<hr>';
//实例化对象,设置默认的值
$result=new lianxi1('小明','20');
//var_dump($result);
//访问属性,因为属性全部被封装,所以必须通过一个统一的外部接口访问
echo $result->show();
echo '<hr>';
//通过创建获取属性的重载方法,从而获取变量的值
echo '通过创建获取属性重载读取私有变量:年龄',$result->age;
echo '<hr>';
echo '通过创建获取属性重载读取私有变量:性别',$result->sex;
echo '<hr>';
//通过设置属性的重载方法,从而改变变量的值
echo '通过设置属性重载方法改变私有变量:年龄',$result->age=33;
echo '<hr>';
//通过设置属性的重载方法,从而改变变量的值
echo '通过设置属性重载方法改变私有变量:年龄',$result->sex='女';
echo '<hr>';
echo '改变年龄和性别值后:',$result->show();
echo '<hr>';
echo '检测变量是否存在:';
echo isset($result->name) ? '存在<br>' : '<span style="color:red">不存在</span><br>';
echo '<hr>';
echo '删除变量后显示:';
unset($result->name);
unset($result->age);
unset($result->sex);
echo '改变年龄和性别值后:',$result->show();点击 "运行实例" 按钮查看在线实例
4,类中静态成员的声明与访问
<meta charset="UTF-8">
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/9/4
* Time: 12:18
*/
class test1
{
//定义静态成员变量
private static $name;
private static $age;
private static $sex;
public static function show()
{
echo '我叫:',self::$name,'今年:',self::$age,'岁,性别是',self::$sex;
}
public function __get($name)
{
// TODO: Implement __get() method.
return $name;
}
function __construct($name,$age,$sex)
{
self::$name=$name;
self::$age=$age;
self::$sex=$sex;
}
}
$a=new test1('小米','25','男');
echo test1::show();点击 "运行实例" 按钮查看在线实例
总结:
继承 extents
定义常量const
静态属性 static
调用静态属性self
调用静态类::
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号