批改状态:未批改
                        老师批语:
                    
                            一类和对象
类的定义:理解 一类事物具有共同的属性和方法的总称,比如猫类
对象:这一类事物的一个具体实例:一个白色的小猫
<?php
class GirlFriend1
{
    // 类中的成员: 属性(变量),方法(函数)
    // 类中用类似变量的方式定义类的属性
    //姓名,public 是访问控制,
    public $name = '冰冰姐';
    //年龄
    public $age = 18;
    // 三维
    public $stature = [90,80,90];
    //类中使用类似函数的方式来定义方法
    public function getInfo($name='', $age=0)
    {
//        $this: 当前类被实例化之后的对象, -> 对象成员访问符
        $this->name = empty($name) ? $this->name : $name;
        $this->age = ($age == 0) ? $this->age : $age;
        return '姓名:' . $this->name . ', 年龄:' . $this->age. '<br>';
    }
    public function getStature($stature =[])
    {
//        $this: 当前类被实例化之后的对象, -> 对象成员访问符
        $this->stature = empty($stature) ? $this->stature : $stature;
        return '胸围:' . $this->stature[0] . ', 腰围:' . $this->stature[1]. ',臀围:'. $this->stature[2].'<br>';
    }
}点击 "运行实例" 按钮查看在线实例
二.类中的几个关键词的理解
public: 可以直接实例化和访问属性和方法
protected:只有本类和继承的类可以访问.
private 只有本类可以访问
<?php
class GirlFriend3
{
    //访问控制: private
    private $name;
    //年龄
    private $age;
    // 三维
    private $stature = [];
    //属性收集器
    private $data = [];
    // 声明构造方法: 对象属性的初始化,在类实例化的时候,自动调用
    public function __construct($name, $age, array $stature)
    {
        // private 访问符限制的属性仅在当前对象内部可以使用
        $this->name = $name;
        $this->age = $age;
        $this->stature = $stature;
    }
    //创建对外访问的公共接口
    // 类中用双下划线的方法是系统定义,由系统自动调用,叫魔术方法
    public function __get($name)
    {
        $msg = null;
        if (isset($this->$name)) {
            $msg = $this->$name;
        } elseif (isset($this->data[$name])) {
            $msg = $this->data[$name];
        } else {
            $msg = '无此属性';
        }
        return $msg;
    }
    //设置器
    public function __set($name, $value)
    {
        $this->$name = $value;
    }
}点击 "运行实例" 按钮查看在线实例
<?php
class GirlFriend3
{
    //访问控制: private
    private $name;
    //年龄
    private $age;
    // 三维
    private $stature = [];
    //属性收集器
    private $data = [];
    // 声明构造方法: 对象属性的初始化,在类实例化的时候,自动调用
    public function __construct($name, $age, array $stature)
    {
        // private 访问符限制的属性仅在当前对象内部可以使用
        $this->name = $name;
        $this->age = $age;
        $this->stature = $stature;
    }
    //创建对外访问的公共接口
    // 类中用双下划线的方法是系统定义,由系统自动调用,叫魔术方法
    public function __get($name)
    {
        $msg = null;
        if (isset($this->$name)) {
            $msg = $this->$name;
        } elseif (isset($this->data[$name])) {
            $msg = $this->data[$name];
        } else {
            $msg = '无此属性';
        }
        return $msg;
    }
    //设置器
    public function __set($name, $value)
    {
        $this->$name = $value;
    }
}点击 "运行实例" 按钮查看在线实例
<?php
class GirlFriend3
{
    //访问控制: private
    private $name;
    //年龄
    private $age;
    // 三维
    private $stature = [];
    //属性收集器
    private $data = [];
    // 声明构造方法: 对象属性的初始化,在类实例化的时候,自动调用
    public function __construct($name, $age, array $stature)
    {
        // private 访问符限制的属性仅在当前对象内部可以使用
        $this->name = $name;
        $this->age = $age;
        $this->stature = $stature;
    }
    //创建对外访问的公共接口
    // 类中用双下划线的方法是系统定义,由系统自动调用,叫魔术方法
    public function __get($name)
    {
        $msg = null;
        if (isset($this->$name)) {
            $msg = $this->$name;
        } elseif (isset($this->data[$name])) {
            $msg = $this->data[$name];
        } else {
            $msg = '无此属性';
        }
        return $msg;
    }
    //设置器
    public function __set($name, $value)
    {
        $this->$name = $value;
    }
}点击 "运行实例" 按钮查看在线实例
第一步:类的定义
<?php
class GirlFriend3
{
    //访问控制: private
    private $name;
    //年龄
    private $age;
    // 三维
    private $stature = [];
    //属性收集器
    private $data = [];
    // 声明构造方法: 对象属性的初始化,在类实例化的时候,自动调用
    public function __construct($name, $age, array $stature)
    {
        // private 访问符限制的属性仅在当前对象内部可以使用
        $this->name = $name;
        $this->age = $age;
        $this->stature = $stature;
    }
    //创建对外访问的公共接口
    // 类中用双下划线的方法是系统定义,由系统自动调用,叫魔术方法
    public function __get($name)
    {
        $msg = null;
        if (isset($this->$name)) {
            $msg = $this->$name;
        } elseif (isset($this->data[$name])) {
            $msg = $this->data[$name];
        } else {
            $msg = '无此属性';
        }
        return $msg;
    }
    //设置器
    public function __set($name, $value)
    {
        $this->$name = $value;
    }
}点击 "运行实例" 按钮查看在线实例
第二步.类的访问 get set方法
<?php
/**
 * 1.使用构造方式来初始化对象
 * 2. 对象的访问控制,public,private
 * 3. 对象属性的获取器/ getter 和 修改器 / setter
 */
require 'class/GirlFriend2.php';
$girlfriend2 = new GirlFriend2('金莲妹妹',23,[87,88,89]);
//echo $girlfriend2->name,'<br>';
echo $girlfriend2->getName('西门大官人');
$girlfriend2->setAge(139);
//echo $girlfriend2->getAge();点击 "运行实例" 按钮查看在线实例
三.数据库的增删改查
insert into 表名(字段一,字段二) values();
delete from 表名 where 条件
update 表名 set 字段=值 where
select 字段 from where
四.数据库的连接
<?php
/**
 * 数据库的连接
 */
//创建一个数据库连接,并返回mysqli对象
require 'config.php';
error_reporting(E_ALL ^E_WARNING);
//简化: 将连接参数转为变量或数组
$mysqli = new mysqli($db_host,$db_user,$db_pass, $db_name);
//判断是否连接成功?
if ($mysqli->connect_errno) {
    // 自定义错误提示信息
    die('连接错误'.$mysqli->connect_errno.': '. $mysqli->connect_error);
}
echo '<h1>连接成功</h1>';
// 设置默认数据库
//$mysqli->select_db($db_name);
//设置客 户端默认的字符编码集
$mysqli->set_charset($db_charset);
// 将默认数据库在连接的时候,直接通过构造方法传入点击 "运行实例" 按钮查看在线实例
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号