批改状态:合格
老师批语:
文件包含的本质就是把外部文件的内容插入到当前的位置
包含的脚本与当前脚本公用一个作用域,相当于是一个文件
用文件包含的方式可以实现一个网站的模块化,将网站的各个部分分到不同的文件,在需要时分别调用
有两个关键字
1.include
这个方法就是直接引入外部的文件,在关键字后直接跟上文件路径
1.1相对路径引入
include 'inc/f1.php';
1.2绝对路径引入(推荐使用)
DIR :返回当前脚本在服务器上的路径
include __DIR__ . '/inc/f1.php';
2.require
和第一个方法一样,在关键字后面直接加文件路径
两个方法的区别
include, require 都支持条件加载,也就是说都支持if判断,满足条件再加载
include, require,功能一样,区别在于出错的处理上
include: 忽略错误,继续执行后面代码, require,直接退出
对象是一个容器,是全局成员的一个前缀
类就是对这个对象的描述
类是全局成员
class :声明类
new :实例化类
类的命名方式为大驼峰命名法:例:UserName, PascalName
可以通俗的认为:对象==实例化类
// 这就是一个类的声明class Goods{// ...}// 类的实例化->对象$goods = new Goods();
get_class :返回当前实例的父级(由谁实例而来)
echo get_class($goods)
1.1 属性 也就是类里面的变量(分为私有private和公共public)
1.2 方法 也就是类里面的方法
$this指向当前实例类
类内部的私有成员外部无法访问,如果需要在外部访问:
1.可以在内部创建一个访问接口(就是内部函数,通过这个函数访问访问到私有属性,因为这个函数包含在类内部,所以可以访问,然后在外部访问这个函数,就可以访问到需要的属性)
2.获取器:get(当前属性):可以获取当前类中的属性,但是是只读,不能在外部进行修改
3.修改器/设置器, 魔术方法, set(属性,值) 可以在外部读取并可以修改
这种以双下划线开始的 __ 方法,叫做魔术方法,由系统定义。
class User1{// 1. 实例成员// (一) 属性, 变量的语法// public: 默认public $username = '张老师';public $role = '妈';// 私有, 只能在当前的类中使用private $salary = 3800;private $age = 28;// (二) 方法: 函数的语法// public function getSalary()// {// $user = new User1();// $this : 和当前类实例绑定// return $this->salary;// }// public function getAge()// {// return $this->age;// }// 获取器: __get(属性), 魔术方法, 双下划线开始的系统方法// $name: 要获取的属性名public function __get($name){// 类内部: $this// return $this->$name;if ($name === 'salary') {if ($this->role === '太太') {return $this->$name;} else {return $this->$name - 1000;}}if ($name === 'age') {return $this->$name + 10;}}// 修改器/设置器, 魔术方法, __set(属性,值)public function __set($name, $value){if ($name === 'age') {if ($value >= 18 && $value <= 50) {$this->$name = $value;} else {echo '年龄越界了';}}}// __get, __set, 成员访问非法拦截器}
-> 指向符 PHP中访问类成员时使用
// 实例化// 在类外部,用对象访问成员$user1 = new User1();echo $user1->username , '<br>';// echo $user1->salary , '<br>';echo $user1->salary . '<br>';echo $user1->age . '<br>';$user1->age = 48;echo $user1->age . '<br>';
构造方法: 实例化该类时,会自动触发
__construct:构造方法关键字
这个方法的作用可以理解为,创建一个方法,但是里面的属性由用户来填入
public function __construct($username, $salary, $age, $nation = 'CHINA'){$this->username = $username;$this->salary = $salary;$this->age = $age;// 初始化静态属性self::$nation = $nation ;}$user2 = new User2('李老师', 2800, 30, '中国');echo $user2->username . '<br>';echo User2::$nation . '<br>';$user3 = new User2('猪老师', 3800, 40, '中国');
static: 声明静态成员(可以是属性或者方法)
self:: 用来引用当前类
$this 用来引用当前实例
声明方法:
// 静态属性public static $nation;// 静态方法public static function hello(){// return 'Hello,' . User2::$nation;// 在类中, 使用 self::来引用当前类return 'Hello,' . self::$nation;}
外部访问静态成员
// echo $user3->nation . '<br>';// 类外部,访问静态成员,使用类名称::echo User2::$nation . '<br>';echo User2::hello() . '<br>';
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号