一、文件加载
1.条件加载实例
<?php
// 1.条件加载:
// a.anchor条件判断:如果custom-a.php文件不存在,则加载default.php
// @不返回错误信息
// if (@!include 'custom-a.php') include 'default.php';
// b.另外一种判断方法,使用两个函数同时判断
//file_exists():文件是否存在;
// is_file():是否是文件;
$file = 'custom-a.php';
if(file_exists($file)&&is_file($file)){
include $file;
}else
{
include 'default.php';
}
// 程序出错也不会终止程序
include 'custom1.php';
echo '如果看到我, 说明程序没有因文件加载失败而终止';
// 2.去重条件加载,仅允许加载一次
// php不支持函数重载, 因此在同一个程序中不允许出现同名函数
// include $file;
// include $file;
// include_once(): 加载前会检查该文件是否已经加载过了, 去重检查
include_once 'custom-a.php';
include_once 'custom-a.php';
条件加载实例演示
2.强制加载
// 1. require: 强制加载
// 如果加载失败, 终止当前脚本, 与include不一样
require 'config.php';
// 2. 强制去重加载
require_once 'common.php';
require_once 'common.php';
二、类与对象
// 对象 = 变量 + 函数
// 对象也是实现"代码复用"的手段
// 要使用对象, 就得先创建一个模板,根据这个模板,不断的创建多个对象出来,实现复用
// 这个模板就叫: "类"
$obj = {
$price = 2700;
$name = '小米10青春版';
function get($name, $price)
{
return "$name :$price 元 ";
}
echo get($name, $price);
}
// 类的声明与实例化
// 1. 类的声明: class
class Goods
{
}
// 2. 类的实例化:创建对象的过程, new
$goods = new Goods();
// 类的实例, 对象, 在不会引起误会的场景下, 实例与对象是同义词
// 判断是否是类的对象的函数: instanceof
var_dump($goods instanceof Goods);
// 获得类名的函数: get_class()
echo get_class($goods);
// 动态类的格式化(首字母大写):ucfirst()
$class = ucfirst('goods');
类成员: 类属性, 类方法, 类常量
1.类属性
// 类属性: 类中变量
// 类中成员的作用域: 访问限制
// 类属性就是有访问限制的变量
// 语法: 访问限制符 $变量标识符;
// 1. 常规属性: 非静态属性/动态属性
public $name = '胡八一';
public $age = 40;
public $options = [1,2,3];
// nowdow
public $output = <<< 'RES'
<h3>中国必胜 \n\r</h3>
RES;
// heredoc :双引号
public $output1 = <<< EOT
<h3>中国\n\r必胜 </h3>
EOT;
// 非法属性值
// 不能用变量
// public $age = $var;
// 不能用类属性/类方法
// public $user = $this->name;
// 不能用表达式
// public $total = $price * 10;
// 不能使用函数调用
// public $creat = time();
// 2. 静态属性
// 如果一个属性的值,对所有实例来说是一样的, 用类访问更方便,此时可以声明为静态的
public static $nationality = '中国/CHINA';
// php程序的运行简单的可以分为二个阶段: 编译, 执行
// 3. 抽象属性: 没有被初始化, 默认值就null
// public $salary;
public $salary = null;
}
$user = new User;
$user->name = '王胖子';
// -> : 对象运算符/对象成员访问符
echo "姓名: {$user->name}, 年龄: {$user->age}<br>";
echo $user->output . '<br>';
echo $user->output1 . '<br>';
// 访问静态属性: 使用范围解析符, 双冒号::
User::$nationality = '美国/USA';
echo User::$nationality;
var_dump(is_null($user->salary));
总结:
1.文件加载是指在指定位置导入.php文件,使主程序显得简洁。文件加载==程序复制粘贴
2.作用域:只要在同一个作用域内, 文件外部变量可以在被加载的文件中使用
3.类是模板,对象是类的实例,实例与对象是同义词。
4.类成员之一:类属性
动态属性、静态属性、抽象属性。
a.静态属性是变量,不是常量,在所有实例中都一样,所以声明为静态。
b.抽象属性是未被初始化,默认是null,如果赋值为null,就不是抽象变量了。
语法: 访问限制符 $变量标识符
箭头-> 对象成员访问符
双冒号:: 使用范围解析符