php面向对象

作者: 马大哈tt | 来源:发表于2017-11-25 15:52 被阅读0次

面向对象在很多语言,如c,java,c++,c#等语言中都有,它与面向过程的区别在于:面向过程实现功能时使用几十个代码块,而面向对象可以使用一个广泛的代码块实现功能。
在分享php的面向对象之前我们先来看看js的面向对象,他们的写法都相同之处,我们可以对比着学习。

js的面向对象

js的面向对象首先定义一个函数,函数名首字母要大写,是习惯规定。传入参数,函数里面的this指向这个函数,定义函数的name,age属性,也可以定义一个函数。然后实例化对象,传参传入相应的值,js还可以直接用 对象名.属性 来设置属性。


function Mylover(name,age){
        this.name = name;
        this.age = age;
        this.shop = function(){}
    }
// 创建一个对象
    var _mylover = new Mylover("wss",19);
// 给对象一个属性like

    _mylover.like = "打游戏";
    console.log(_mylover);

打印的Mylover对象如下:


js.png

php的面向对象

  1. 首先定义一个类
    使用public,protected,private来定义属性,类里面可以定义一个方法。
    构造函数: __construct前面是两个下划线,作用是:实例化的类的时候,会自动执行。一般用于类的初始化,比如给属性赋值
// 定义对象 class
class Student{
              // 属性
        public $name;
        public $age;
        public $sex;
                // 定义一个方法
        public function study(){
            echo "数学";
        }
              // 构造函数 __construct
        public function __construct($name,$age,$sex){
            $this->name = $name;
            $this->sex = $sex;
            $this->age = $age;
        }
    }
  1. 实例化类
    $Student称为类Student的实例
$Student = new Student("ltt","22","女");
  1. 对象的属性和方法
    使用 -> 符号执行对象的方法或者属性
$Student->study();
  1. 类的继承
    上面定义了一个Student类,现在再定义一个大学生类,这个肯定有些属性和学生类相同,但肯定也有一些自己独特的属性,比如:学分(score)。
    使用 extends 关键字继承Student的类。析构函数里,继承Student类里的方法使用关键字 parent::这样Bigstudent就继承了Student里的$name,$sex,$age三个类。
class Bigstudent extends Student{
        public $score;
        public function __construct($name,$sex,$age,$score){
            parent::__construct($name,$sex,$age);
            $this->score = $score;
        }
    }

下面实例化Bigstudent
Bigstudent是子类,Student是父类;子类:就是继承父类,通过继承,子类可以获得父类的属性与方法。

$s1 = new Bigstudent("张三","男","18","80");
    $s1->study();
    echo $s1->name.$s1->sex.$s1->age.$s1->score;

结果图:


结果图.png
  1. public、protected、private
  • public 属于公开的属性,外部可以直接访问
  • protected 保护的 这是子类能访问到,但是外部不可以访问
  • private 私有属性 -只有类自己内部能操作

相关文章

  • 2019-07-28

    在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用。

  • 2019-07-18

    在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很...

  • 类的声明和语法

    1.达标和检测 学习PHP的面向对象,你需要具备PHP面向过程的相关基础,如不会,请先学习PHP基础部分. 面向对...

  • PHP技术梳理

    PHP语言: PHP基础, 数据类型, 导入文件 string array 面向对象技术, 类, 对象, 继...

  • php 面向对象

    给自己看的 简介 PHP 对待对象的方式与引用 (references) 和句柄 (handles) 相同,即每个...

  • php面向对象

    面向对象在很多语言,如c,java,c++,c#等语言中都有,它与面向过程的区别在于:面向过程实现功能时使用几十个...

  • php面向对象

    一、类 类是一种具有统一的特征和行为的声明特征:是属性行为:方法或者函数 属性有三个标识,1、public:公共的...

  • PHP面向对象

    1 写出 php 的 public、protected、private 三种访问控制模式的区别(新浪网技术部) ...

  • PHP 面向对象

    最近博主的网路出现问题,导致简书发布不了新文章,更新慢了。只能在CSDN博客上更新,大家见谅,欢迎关注我的 CSD...

  • php 面向对象

    访问控制 public 可在外部调用protected 只能在类的内部 或者子类中调用prrivate 只能在自身...

网友评论

    本文标题:php面向对象

    本文链接:https://www.haomeiwen.com/subject/mgrcbxtx.html