文件包含
将外部文件的内容插入当前位置;
include
与require
// 1.include
// 代码出错后忽略错误,继续执行后面代码;
相对路径:include 'inc/f1.php';
绝对路径:include __DIR__ . '/inc/f1.php';
echo $username ;
// 2.require
// 代码出错后直接退出;
require __DIR__ . '/inc/f1.php';
echo $username ;
类与对象
类:全局成员,声明(class),用大驼峰(UserName)
对象:一个容器,是全局成员一个前缀
1.类声明
class Goods{...};
2.类的实例化(对象)
$goods = new Goods();
类成员
1.实例成员:用对象访问($this)
class User1
{
// 1. 实例成员
// (一) 属性, 变量的语法
// public: 公共(默认)
public $username = '张老师';
public $role = '妈';
// 私有, 只能在当前的类中使用
private $salary = 3800;
private $age = 28;
// (二) 方法: 函数的语法
// public function getSalary()
// {
// $this : 和当前类实例绑定
// return $this->salary;
// }
// public function getAge()
// {
// return $this->age;
// }
// 获取器: __get(属性), 魔术方法, 双下划线开始的系统方法
// $name: 要获取的属性名
public function __get($name)
{
// 类内部: $this
// return $this->$name;
if ($name === 'salary') {
if ($this->role === '太太') {
return $this->$name;
} else {
return $this->$name - 1000;
}
}
if ($name === 'age') {
return $this->$name + 10;
}
}
// 修改器/设置器, 魔术方法, __set(属性,值)
public function __set($name, $value)
{
if ($name === 'age') {
if ($value >= 18 && $value <= 50) {
$this->$name = $value;
} else {
echo '年龄越界了';
}
}
}
// __get, __set, 成员非法访问拦截器
}
// 实例化
// 在类外部,用对象访问成员
$user1 = new User1();
echo $user1->username , '<br>';
// echo $user1->salary , '<br>';
echo $user1->salary . '<br>';
echo $user1->age . '<br>';
$user1->age = 48;
echo $user1->age . '<br>';
2.静态成员 static:用类访问(self::)
class User2
{
public $username;
private $salary;
private $age;
// 当前类实例的状态(属性值)由用户决定
// 构造方法: 魔术方法, 不用用户主动调用,由某个事件或动作来触发
// __get,__set
// 构造方法, 实例化该类时,会自动触发
public function __construct($username, $salary, $age,
$nation = 'CHINA')
{
$this->username = $username;
$this->salary = $salary;
$this->age = $age;
// 初始化静态属性
self::$nation = $nation ;
}
// 静态成员 static
// 静态属性
public static $nation;
// 静态方法
public static function hello()
{
// return 'Hello,' . User2::$nation;
// 在类中, 使用 self::来引用当前类
return 'Hello,' . self::$nation;
}
}
$user2 = new User2('李老师', 2800, 30, '中国');
echo $user2->username . '<br>';
echo User2::$nation . '<br>';
$user3 = new User2('猪老师', 3800, 40, '中国');
echo $user3->username . '<br>';
// echo $user3->nation . '<br>';
// 类外部,访问静态成员,使用类名称::
echo User2::$nation . '<br>';
echo User2::hello() . '<br>';