批改状态:合格
老师批语:类与对象中, 有一些概念是有点绕, 似是而非, 所以要多看一些相关资料和多做练习
加载外部文件,如果失败报警告级(Warning)错误,不会中断程序
| 序号 | 语法 | 描述 |
|---|---|---|
| 1 | include |
条件加载 |
| 2 | include_once |
去重(chong)条件加载 |
include 条件加载
## include 文件加载// 单引号加载include 'header.html';// 双引号加载include "header.html";// 变量加载$file = 'header.html';include $file;// 拼接加载$name = 'header';include $name.'.html';// 双变量拼接加载$name = 'header';$type = '.html';include $name.$type;// 条件加载 检测文件是否存在且是一个文件而不是目录,若不存在加载默认文件$file = 'header111.html'; //没有此文件(file_exists($file) && is_file($file)) ? include $file : include '404.html';

include_once 去重加载
## include_once 去重加载 检测是否已经加载过此文件,若已经加载过则不加载,若未加载则只加载一次,无论输入多少次// 单引号加载include_once 'header.html';// 双引号加载include_once "header.html";// 变量加载$file = 'header.html';include_once $file;// 拼接加载$name = 'header';include_once $name.'.html';// 双变量拼接加载$name = 'header';$type = '.html';include_once $name.$type;

加载外部文件,如果失败报致命级(Fatal error)错误,并中断程序
| 序号 | 语法 | 描述 |
|---|---|---|
| 1 | require |
强制加载 |
| 2 | require_once |
去重强制加载 |
## 条件加载 指向一个没有的文件include 'template.php';echo '<hr>虽然上面文件加载失败,但你依然可以看到我,说明程序继续向下执行<hr>';## 强制加载require 'header.html';echo '<br><hr>强制加载成功,你可以看到我<hr>';require 'template.php';echo '<br><hr>强制加载失败,你看不到我<hr>';

// 外部加载,内部访问include 'function.php';function func(){global $email;echo $email;};func();// 输出 admin@php.cn// 内部加载内部访问function test(){include 'function.php';echo $email;};test();// 输出 admin@php.cn
| 序号 | 名称 | 描述 | 关键字 |
|---|---|---|---|
| 1 | 类class |
对象的模板 | class |
| 2 | 对象instance |
类的实例 | new |
# 对象也是实现代码复用的手段# 要使用对象,就必须创建一个类,根据这个类,不断创建多个对象出来,实现代码复用#类的声明与实例化// 声明类class Goods{}#类的实例化,是一个创建对象的过程。new$goods = new Goods();# 再不会引起误会的情况下,示例与对象是同义词// 判断对象$goods是不是类Goods的示例var_dump($goods instanceof Goods);// 输出 bool(true)// 查看 对象$goos 的类名echo get_class($goods);// 输出 Goods// 类名是支持使用变量的,动态类$class = 'Goods';$obj = new $class();echo get_class($obj);// 输出 Goods// 用函数将首字母转为大写 动态生成类名经常用$class = ucfirst('goods');echo $class;// 输出 Goods
| 序号 | 名称 | 描述 | 关键字 | |
|---|---|---|---|---|
| 1 | 类属性property |
类中变量 | 无 | |
| 2 | 类方法method |
类中函数 | function |
|
| 3 | 类常量method |
类中常量 | const |
. |
<?php# 类成员:类属性,类方法,类常量// 类名必须首字母大写class User{// 类中变量必须要有作用域:或者叫访问限制// 语法 : 访问限制符 $ 变量名 = 值// 常规属性 跟静态属性相比又叫动态属性// public 公开的// 字符串public $name = 'micheal';// 数字public $age = 15;// 数组public $arr = [1,2,3,4];// nowdoc heredocpublic $txt = <<< TXT<h2>我爱你中国</h2>TXT;####但是####// 以下属性不可以用 :非法属性值// 不能用变量// public $age = $varl;、// 不能用类属性 类方法 赋值// public $age = $this->age;// 不能用表达式// public $age = $age*10;// 不能使用函数调用的结果// public $age = age();// 2.静态属性// 如果一个属性的值对所有示例来说是一样的,换句话说就是他被所有的对象所共享 那么就没有必要用对象来访问// 用类访问,此时可以声明为静态的public static $username = '双倍快乐';// php 程序运行简单分为两个阶段:编译,执行// 静态属性在程序的编译阶段就完成了初始化,已经有了值了// 静态属性创建时一定要有值或者默认值,不依赖类的实例化对他进行初始化// 3.抽象属性:没有被初始化,默认值可以认为null,但不能给他赋值null否则会发生根本性变化,赋值后就不是抽象属性了public $ages;}// 访问$user = new User;// -> 对象和成员访问符echo "姓名:{$user->name}";// 输出 姓名:micheal// 在类的外部可以给类中的值进行更新$name = 'kaiwen';$user->name = $name;echo "姓名:{$user->name}";// 输出 姓名:kaiwenecho $user->txt;// 输出 我爱你中国// 访问静态属性 适用范围解析符,双冒号::echo User::$username;// 输出 双倍快乐// 静态属性也支持更新User::$username = '不会快乐';echo User::$username;// 输出 不会快乐
| 序号 | 名称 | 关键字 | 类外部 | 类内部 | 类继承上下文 | 描述 |
|---|---|---|---|---|---|---|
| 1 | 公开成员 | public |
允许 | 允许 | 允许 | 默认 |
| 2 | 受保护成员 | protected |
禁止 | 允许 | 允许 | 封装 |
| 3 | 私有成员 | private |
禁止 | 允许 | 禁止 | 封装 |
| 序号 | 名称 | 关键字 | 调用主体 |
|---|---|---|---|
| 1 | 非静态成员 | 默认 | 类实例调用 |
| 2 | 静态成员 | static |
类调用 |
| 序号 | 名称 | 关键字 | 具体实现 |
|---|---|---|---|
| 1 | 非抽象成员 | 默认 | 有 |
| 2 | 抽象成员 | abstract |
无 |
abstract class| 序号 | 类型 | 关键字 | 描述 |
|---|---|---|---|
| 1 | 可重写方法 | 默认 | 可由子类重写 |
| 2 | 最终方法 | final |
不允许子类重写 |
只有 “类和方法” 可声明为
final, 属性不可以
| 序号 | 类型 | 关键字 | 可实例化 | 可继承 | 可组合 |
|---|---|---|---|---|---|
| 1 | 常规类 | class |
允许 | 允许 | 允许 |
| 2 | 最终类 | final |
允许 | 禁止 | 允许 |
| 3 | 抽象类 | abstract |
禁止 | 允许 | 允许 |
| 4 | 特征类 | trait |
禁止 | 禁止 | 允许 |
| 5 | 接口类 | interface |
禁止 | 允许 | 允许 |
| 6 | 匿名类 | new class{} |
禁止 | 允许 | 允许 |
了解文件加载中 条件加载 和 强制加载的区别
初步了解类与对象,类的声明与实例化,非法属性值,外部可更新属性值
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号