文件的条件加载\强制加载\去重加载
// 文件加载
// echo '文件加载';
include 'public_header.html';
// 去重加载
include_once 'public_header.html';
include_once 'public_header.html';
// echo '强制加载';
require 'public_header.html';
// 强制去重加载
require_once 'public_header.html';
require_once 'public_header.html';
$file = 'public_header222.html';
if (file_exists($file) && is_file($file)){
include 'public_header.html';
} else {
echo '加载失败';
}
类与对象,属性值与类成员访问
类的声明与实例化
// 1. 类的声明: class
class Goods
{
}
// 2. 类的实例化:创建对象的过程, new
$goods = new Goods(); //这个$goods就是对象
// 类的实例, 对象, 在不会引起误会的场景下, 实例与对象是同义词
var_dump($goods instanceof Goods); //判断对象$goods是不是Goods类的实例
// 如果不知道类名,get_class():获取到类名称
echo get_class($goods);
// 动态类, 首字母大写 ucfirst():首字母大写
$class = ucfirst('goods');
// $class = 'goods';
die($class);
$obj = new $class();
var_dump($obj instanceof Goods);
类成员访问
// 类成员访问控制:
// 1、public 默认的,任何地方都可以访问,类内,类外,子类中
// 2、protected 受保护的,对外是封闭的,但是类内部和子类可以访问
// 3、private 私有的,仅限于本类中访问
class Gaodihua
{
public $name = '高';//这是非静态属性
public static $age = 35;//静态属性
public $salary; // 抽象属性:一定是没有赋值的
}
$Gaodihua = new Gaodihua;
// -> : 对象运算符/对象成员访问符
echo "姓名: {$Gaodihua->name}<br>";
//类外部调用静态属性
echo Gaodihua::$age,'<br>';
// 在类的外部给类的属性更新值
$Gaodihua->name = '高先生';
echo "姓名: {$Gaodihua->name}<br>";
// 静态属性的更新
Gaodihua::$age = 36;
echo Gaodihua::$age,'<br>';
// 抽象属性
var_dump(is_null($user->salary));
总结
文件加载
file_exists()
检查文件或目录是否存在
is_file()
检查指定的文件是否是常规的文件,而不是目录
include
: 文件加载include_once
: 加载前会检查该文件是否已经加载过了, 去重检查require
: 强制加载require_once
: 强制去重加载
include
和require
的区别:出现错误include
报错但继续执行,而require
(强制加载)报错同时中止程序执行
类与对象
ucfirst()
:首字母大写
get_class()
:获取实例类的名字
对象 instanceof 类
:判断$class是否属于Class类:返回布尔值
变量 + 函数 = 对象
对象也是实现”代码复用”的手段
要使用对象, 就得先创建一个模板,根据这个模板,不断的创建多个对象出来,实现复用,这个模板就叫: “类”
类属性: 类中的变量(不同的场景叫法不同),类属性就是有访问限制的变量,语法: 访问限制符 $变量标识符;
类属性的值:不能用变量、不能用类属性/类方法、不能用表达式、不能使用函数调用