教程:一篇搞定-php面向对象

本文是一篇全面的PHP面向对象编程教程,涵盖了面向过程和面向对象的区别、类和对象的关系、类的定义、成员属性和方法、构造与析构方法、静态属性和方法、类的封装性、继承性和多态性等核心概念。通过实例详细讲解了每个概念,适合初学者深入理解PHP的OOP编程思想。
摘要由CSDN通过智能技术生成

php面向对象学习

注意:该文档是保姆级别教程,都是我学习过程整理所得

1.编程思想

POP :面向过程编程
OOP:面向对象编程

2.面向过程

2.1概念

面向过程是一种编程思想
面向过程是一种以过程(步骤)为中心的编程思想
面向过程是人类的思考问题的一种习惯

2.2面向过程例子

提交表单发送数据到服务器

  1. 连接数据库,选择数据库,设置字符集
  2. 判断表单来源是否安全
  3. 获取表单数据,普通表单数据处理,图片数据处理(上传、加水印、生成缩略图等)
  4. 构建sql语句,把数据插入到数据库
  5. 跳转到列表页

这就是一个面向过程的编程,是不是很符合人类思考习惯?一步一步来。

3.面向对象

3.1概念

面向对象是一种以事物(对象)为中心的编程思想
面向对象是以功能来划分问题,而不是步骤
面向过程,就是着重于做什么;面向对象,就是着重于谁去做

3.2面向对象例子

还是提交表单发送数据到服务器

  1. 连接数据库,选择数据库,设置字符集(数据库对象)
  2. 判断表单来源是否安全
  3. 获取表单数据,普通表单数据处理,图片数据上传(上传对象),添加图片水印(图像处理对象),生成缩略图(图像处理对象)
  4. 构建sql语句,把数据插入到数据库(数据库对象)
  5. 跳转到列表页

做什么事,就给专业的人来做,我只要结果。

4.类和对象的关系

4.1 类的概念

  • 类就是分类、类别、模板、概念等,类是无形的、看不见、摸不着,不实际存在的
  • 类是具有相同**属性(特征)行为(动作)**的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分

4.2 对象的概念

  • 客观世界中任何一个事物都可以看成一个对象,对象看得见、摸得着,实际存在的
  • 任何一个对象都应具有这两个要素:属性(Attribute)行为(Behavior)
  • 对象来自于某个类,对象不能单独存在。一个类可以产生千千万万个对象
  • 对象和类的关系是,对象是类的实例,类是对象的模板
  • 类是抽象的,几乎不占用内存,而对象是具体的,占用存储空间

4.3 区别

在现实中,先有对象,再有类
在电脑中,先有类,再有对象

5.类的定义

5.1类的定义语法

类和函数一样,都是代码的封装方式

<?php
//类的定义
class ClassName{
   
    //类的代码    
}


// class:声明类的关键字
// ClassName:类名称,和变量的命名方式一样,但是前面没有$符号,类的命名方式通常是驼峰式命名,每个单词首字母大写
// ClassName后方没有小括号,直接跟随大括号
// {}中是类的定义代码 :对象属性,对象方法等

5.2类定义简单例子

<?php

//定义一个人类:由属性和方法构成
//注意:类只有两种内容,成员属性和成员方法

//成员属性:就是普通的变量
//成员方法:就是普通的函数

class People
{
   
    //成员属性
    public $name = "Donald Trump";
    public $age = "74";

    //成员方法
    public function speech()
    {
   
        echo "没有人比我更了解中国";
    }
}

在这里插入图片描述

6.类的成员属性定义

6.1成员属性概念

  • 类的成员属性,就是指某个类具有的公共的特征、特性
  • 类中定义的变量,就是类的成员属性
  • 类的成员属性和普通变量的区别:类的成员属性必须要带权限修饰符,而普通变量不需要

6.2权限修饰符

  • 成员属性必须要加权限修饰符,否则报错
  • public(公共权限):在任何地方都可以访问,主要包括:类外、本类中、子类中都可以访问
  • private(私有权限):只能在本类中被访问,在类外和子类中都无权访问
  • protected(受保护的权限):只能在本类中和子类中被访问,在类外不能被访问

6.3举个栗子

<?php

class Goods{
   


    //对象属性:可以用不同的修饰符进行修饰,必须要加,否则报错

    //品牌
    private $brand;
    
    //价格
    public $price = 100;

    //类别
    protected $catetory;


}

7.类的成员方法定义

7.1成员属性概念

  • 类的方法,就是某个类的公共的的行为或动作
  • 类的成员方法,与普通函数一样,都有返回值和参数
  • 成员方法与普通函数区别:成员方法只能存在于类中,成员方法定义前可以添加访问权限修饰符
  • 成员方法可以省略权限修饰符,默认访问权限是public

7.2示例

<?php


//定义一个电脑类
//成员方法,可以传参,可以返回数据,也可以不传参,不返回数据
class Computer{
   
    
 
    
    
    //成员方法(对象方法)
    public function show($a,$b){
   
        return $a+$b;
    }

    //私有成员方法
    private function getConfig(){
   
        echo "i7 4核 8G";
    }

    //不写修饰符,默认是public
    function setNum(){
   
        
    }
}

8.创建类的对象

8.1实例化对象的含义

  • 定义类是为了生产对象,如果不生产对象,类就没有意义
  • 一个类可以产生千千万万个对象,对象帮我们干活
  • 对象实例化:从一个类上来生产对象过程,就是类的实例化

8.2语法格式

  • 使用new关键字来创建对象
  • JS创建对象的方法:var today = new Date()
  • PHP创建对象的方法:$obj = new Student()

8.3示例

<?php
//定义一个学生类
class Student{
   
    
    //成员属性
    public $name = "川普";
    private $age = 74;



    //成员方法
    public function hello(){
   
        echo "大家好,我是川普";
    }
}

//类外,实例化对象:从类上创建对象的过程
$obj = new Student();

//一个类创建一个对象过于浪费,我们可以创建无数个
$obj2 = new Student();


//打印查看
var_dump($obj,$obj2);

在这里插入图片描述

9.对象属性和方法的操作

9.1如何访问对象的属性和方法?

  • 在JS中,访问对象属性和方法,是通过"."来访问的。例如:window.alert()、arrObj.length
  • 在PHP中,访问对象属性和方法,是通过"->"来访问的。例如: o b j − > n a m e 、 obj->name、 obj>nameobj->hello()
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

<?php
class Student{
   
    //公共的成员属性
    public $name = "唐纳德";
    public $age = "74";
    
    //私有的成员属性
    private $hobby = "golf";

    //公共的成员方法
    public function hello(){
   
        echo "大家好,我是唐纳德";
    }
}

//实例化对象
$obj = new Student();
//访问属性
echo $obj->name; //唐纳德


// echo $obj->hobby; //无法访问私有成员属性


//访问方法
// $obj->hello();//大家好,我是唐纳德

9.2对象属性的操作

在这里插入图片描述

<?php
//定义一个学生类
class Student{
   

    //公共的成员属性
    public $name = "唐纳德";
  
}

//实例化对象
$obj = new Student();

//修改属性,给成员属性重新赋值
$obj->name = "唐纳德·川普";
//添加属性
$obj->age = 74;

//删除属性
// unset可以删除变量,数组元素,对象属性等
unset($obj->age);

//访问属性
echo '大家好' . $obj->name;


9.3对象方法的操作

对象方法的操作步骤:方法定义、方法调用、传递参数、方法返回值。
在这里插入图片描述

<?php
class Student
{
   


    //定义公共的成员方法
    public function eat($name, $food)
    {
   
        return "{
   $name}中午吃了{
   $food}";
    }
}

//创建学生类对象
$obj = new Student();
//调用方法,传递参数,输出返回值

echo $obj->eat("川普","汉堡");

10.伪变量$this的使用

10.1伪变量$this的含义

  • 在JS中,使用this关键字来代替当前对象,例如:this.src = ‘./a.jpg’
  • 在PHP中,使用 t h i s 变 量 来 代 替 当 前 对 象 , 例 如
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值