<?php
/**
* class Index
* 类包含什么
* 1.创建类
* 2.类的属性和类中方法
* 3.类中访问修饰符
* 4.类的封装、继承、多态
*/
// 创建类,创建的类名是采用驼峰方式
class Index
{
/**
* Index constructor.
* 类的属性,即类中的成员变量
* 1.常量:公共可用,通常大写,若果包含多个单词则以下划线分割
* 2.自定义变量
* 类中的修饰符,
* private(私有的,被该修饰符修饰的成员属性和方法只能在本类中使用),
* public(公有的,被该修饰符修饰的成员属性和方法在任何地方均可使用,若果我们创建的函数没设置修饰符,则默认为public),
* protected(受保护的,被该修饰符修饰的成员属性和方法可以在本类中使用或者在子类中使用),
* static(静态作用域,被该修饰符修饰的成员属性和方法在所有类中均可使用,调用的是有直接使用 类名::属性名/方法名(::被成为范围解释操作符号)),
*
*/
protected $name; // 定义一个受保护的成员属性
const USER_AGE = 12; // 创建一个常量,在调用常量的时候不能间接的使用->来调用该常量
static $height = 120; // 创建一个静态属性
/**
* Index constructor.
* 类的方法
* 最基本的是构造函数,__construct,构造函数在类被实例化的时候,自动调用.当类中不存在构造函数时,默认与类名相同的函数作为构造函数
* 与构造函数相对的就是析构函数,__destruct,析构函数是在类被调用完成时,才执行析构函数
* 自定义函数,类名采用驼峰式命名规范,创建的函数,可以带上参数,也可以不带参数,同时可以给参数这是一个默认值
*/
/**
* 创建构造函数
*/
public function __construct(){
$this->name = "张三"; // 调用类中的成员属性,直接使用$this->
}
/**
* 创建public类型的函数
*/
public function index($rank = 12){
echo "大家好,我叫".$this->name."我今年".self::USER_AGE."岁了!我的体重是".Index::$height."公斤。我现在在学校成绩排名为".$rank."名<br/>";
}
/**
* 创建静态函数
*/
static function test(){
echo "你正在调用类中的静态函数,恭喜你采用这种方式调用成功了!";
}
/**
* 创建析构函数
*/
function __destruct(){
echo "此时类被引用已经结束了!";
}
}
// 实例化类
$obj = new Index();
$obj->index(); // 不传递参数,此时会打印出如下内容
/**
* 大家好,我叫张三我今年12岁了!我的体重是120公斤。我现在在学校成绩排名为12名
* 此时类被引用已经结束了!
*/
$obj->index(15); // 不传递参数,此时会打印出如下内容
/**
* 大家好,我叫张三我今年12岁了!我的体重是120公斤。我现在在学校成绩排名为15名
* 此时类被引用已经结束了!
*/
// 调用类中静态函数
$obj::test();// 或者采用下面的方式
Index::test();
// 调用类中成员属性
echo ($obj::$height); // 或者采用下面的方式
echo (Index::$height);