文件的包含
- 本质,将外部文件的内容,插入到当前的位置
1.1 include:导入文件,输入路径(建议使用绝对路径)即可,可以用变量,在当前文件使用,或者接受文件的返回值(可以是变量,可以是数组等)在当前文件使用
1.2 require:与include功能一致,区别在于出错处理上,include:忽略错误,继续执行后面代码,require:直接退出
1.3 两者都支持条件加载,一般不用
1.4 把通用的html代码,以文件形式储存导入使用,提升效率
类与对象
- 面向对象编程:对象是一个容器,是全局成员的一个前缀
- 类:是全局成员,声明:class,大驼峰命名
- 类声明(class)->类的实例化(对象)(new)
- 动态类-没听懂
类成员
- 实例成员:用对象访问的,内部用$this,外部用实例化对象名
1.1 public(声明公共成员).private(申明私有成员,只能在类内部使用)
1.2 方法:函数的语法 - 静态成员:用类访问的,public static-声明静态公共成员,在类中用self::引用当前类静态成员,类外部,用-类名称::$变量名
- $this与当前类实例绑定
注:获取修改私有成员 - 获取器:__get(属性):获取魔术方法,用双下划线开始的系统方法
- 修改器:__set(属性,值):设置值
- 构造方法:function __construct($变量名1,$变量名2…),$this->变量名 = $变量名1…,外部通过实例化传参赋值,进行调用外部参数传入,进行访问;
其他
- get_class():获取对象属于哪个类的类名
- instanceof:判断对象是否在某个类中
- die(‘程序中断’)
- exit(‘与die相似’)
实例源码
<?php
include __DIR__.DIRECTORY_SEPARATOR.'0812text\text.php';
echo $textdata.'<hr>';
// E:\Users\RAJA\Desktop\test\xuexiphp\0812\
class Users {
public $username;
public $email;
private $password;
public $name ='zhong';
private $age = '18';
public static $text;
public function __get($m)
{
// 筛选过滤,给条件方法,私有变量可起到隐私作用
if($m === 'age') {
if($this -> name === 'HU'){
return $this->$m;
} else {
return $this->$m + 10;
}
}else {
return $this ->$m;
}
}
public function __set($n,$value)
{
return $this -> password = $value;
return $this -> name = $value;
}
public function __construct($x,$y,$z,$q='111')
{
// 初始化
$this -> username = $x;
$this -> email = $y;
$this -> password = $z;
self::$text = $q;
}
};
$user = new Users('wang',$textdata,'12345678');
echo $user->username.'<hr>';
echo $user->email.'<hr>';
echo $user->password.'<hr>';
echo $user->age.'<hr>';
$user->password = '09873';
echo $user->password.'<hr>';
$user->name = 'HU';
echo $user->age.'<hr>';
$user2 = new Users('zhong','wh@qq.com','iusdhfa sdf');
echo $user2->username.'<hr>';
echo $user2->email.'<hr>';
echo $user2->password.'<hr>';
echo $user2::$text='999';
// 面向对象的编程理解:类相当于一个方法,__get获取类内部的私有变量(可条件判断根据值的不同给定不同的方法操作),
// __set()修改类内部变量的值(也可等于数据库获取的值),__construct()对象构造器,通过传参,
// 使用外部变量赋值,来进行外部数据获取,在特定的类中进行数据处理;
实例结果: