文件加载与面向对象入门知识
1. 理解并实例演示条件加载与强制加载,去重加载等
1.1 条件加载
- 条件加载支持单双引号
<?php
//加载公共的模板
// 1.条件加载
include 'nav.php';
// 支持双引号
include "nav.php";
- 可以加上括号(并不是函数,知识语言结构)
//可以加上括号(并不是函数,知识语言结构)
include("nav.php");
- 支持变量
//支持变量
$file = "nav.php";
include $file;
- 支持字符串拼接
// 支持字符串拼接
$file = "nav";
include $file . '.php';
- 加载外部文件一般需要做一个检测
// 加载外部文件一般需要做一个检测
$file = 'nav.php';
if (file_exists($file) && is_file($file)) {
include "{$file}";
} else
include 'nav2.php';
- include_once 加载前会检查文件是否已经被加载过了
<?php
//include_once
// 全局成员:函数,常量,类,接口
// 不支持函数的重载,因此在一个程序中不允许出现同名函数
include 'common.php';
include 'common.php';
//include_once加载前会检查文件是否已经被加载过了
include_once 'common.php';
include_once 'common.php';
echo fetch();
条件加载:不会因为文件加载失败而终止程序的执行
1.2 强制加载
- 如果加载失败,终止当前脚本,与条件加载不一样
<?php
//强制加载
//如果加载失败,终止当前脚本,与条件加载不一样
require 'config.php';
// 如果没有指定加载的文件是无法执行下面的打印输出
echo '如果看到我,证明程序执行到这里了';
- require_once 加载前会检查文件是否已经被加载过了
其他的属性和条件加载类似
1.3 文件加载与作用域
- include 相当于是代码复制
//只要在同一个作用域内,文件外部变量可以在被加载的文件中使用
//include相当于是代码复制
$siteName = 'php中文网';
include 'file.php';
echo '<hr>';
// 函数作用域
function text()
{
global $siteName;
include 'file.php';
echo $email;
}
text();
echo '<hr>';
function text2()
{
include 'file2.php';
}
text2();
echo $goods ?? '默认商品';
2. 实例演示类与对象, 属性值与类成员访问
2.1 面向对象
PHP 面向对象(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
- 类: 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
- 成员变量(属性):定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。
- 成员函数(方法):定义在类的内部,可用于访问对象的数据。
- 对象:是类的实例(对象和类之间界限并不清晰)。
变量:数据的复用,函数:代码的复用(变量+函数=对象)
对象也是实现代码复用的手段
2.2 类的声明与实例化
- 类的实例化:创建对象的过程,new
- 类的实例和对象的区别:如果在不引起误会的场景下,实例与对象是同义词
// 1.类的声明
class Goods
{
}
//2.类的实例化:创建对象的过程,new
$goods = new Goods();
//类的实例和对象的区别:如果在不引起误会的场景下,实例与对象是同义词
2.3 类成员(类属性,类方法,类常量)
2.3.1 类属性
- 一 常规类属性:类中的变量,符合 php 变量的规范
- 类属性是有访问限制的变量
禁止的属性(非法属性) 1.不能用变量,2.不能用类属性/类的方法,3.不能用表达式,4.不能用函数
常规属性:非静态属性/动态属性(字符串,整数,数组,nowdoc 是合法的)
二 静态属性(本质上还是变量)
如果一个属性的值,对所有实例来说都是一样的,用类访问更方便,此时可以声明位静态的静态属性(直接调用,不需要实例化)
三 抽象属性:没有被初始化,默认是 Null;
2.3.2 对象运算符/成员访问符
->
访问类中的属性变量::
双冒号,访问静态属性(范围解析符)
<?php
//类中的成员
class Nicola
{
//类属性:类中的变量,符合php变量的规范
//类中成员的作用域:访问限制
//类属性就是有访问限制的变量
//一.常规属性:非静态属性/动态属性
// 字符串,整数,数组,nowdoc是合法的
public $ni = '尼古拉';
// 禁止的属性(非法属性)
// 1.不能用变量
// public $user = $abc;
//2.不能用类属性/类的方法
// public $Nicola = $this->nicola;
//3.不能用表达式
// public $Nicola = '$abc+$v+$n';
//4.不能用函数
// public $Nicola = time();
// 二 静态属性(本质上还是变量)
// 如果一个属性的值,对所有实例来说都是一样的,用类访问更方便,此时可以声明位静态的
public static $Nicola = '尼古拉特斯拉';
// 可以不需要实例化为对象即可调用
// 三 抽象属性:没有被初始化,默认是Null;
public $Nico;
}
// $nicola = '尼古拉';
$nico = new Nicola;
// - `->` 访问类中的属性变量
echo "{$nico->ni}";
// - `::`双冒号,访问静态属性(范围解析符)
echo Nicola::$Nicola;
3 总结
本节课学习了面向对象的入门知识,对类和对象有一定的认识和了解,结合之前学习函数知识的基础有一定的理解,但还是很懵懂,毕竟刚接触这一个新的知识点.用一句话概括,对象目的就是实现代码复用的一种手段.