翼度科技»论坛 编程开发 PHP 查看内容

php面向对象程序设计介绍

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
PHP是一种面向对象的编程语言,它允许开发者使用面向对象的编程技术来构建复杂的应用程序。下面是一些关于PHP面向对象编程的讲解:

类与对象

类是一种用于定义对象的蓝图,它描述了对象的属性和方法。对象则是类的一个实例,它具有类中定义的属性和方法。 在PHP中,使用
  1. class
复制代码
关键字来定义一个类,例如:
  1. <?php
  2. class Person {
  3.     public $name;
  4.     public $age;
  5.     function __construct($name, $age) {
  6.         $this->name = $name;
  7.         $this->age = $age;
  8.     }
  9.     function sayHello() {
  10.         echo "Hello, my name is " . $this->name;
  11.     }
  12. }
复制代码
上面的代码定义了一个名为
  1. Person
复制代码
的类,它有两个属性
  1. $name
复制代码
  1. $age
复制代码
,和一个构造函数
  1. __construct()
复制代码
,以及一个方法
  1. sayHello()
复制代码
。 我们可以使用
  1. new
复制代码
关键字来创建一个类的实例,例如:
  1. <?php
  2. $person1 = new Person("John", 30);
复制代码
上面的代码创建了一个
  1. Person
复制代码
类的实例
  1. $person1
复制代码
,并将其属性
  1. $name
复制代码
设为
  1. John
复制代码
,属性
  1. $age
复制代码
设为
  1. 30
复制代码
。 我们可以使用箭头符号
  1. ->
复制代码
来调用对象的属性和方法,例如:
  1. <?phpecho $person1->name; // 输出 "John"$person1->sayHello(); // 输出 "Hello, my name is John"
复制代码
访问控制

PHP提供了三种访问控制关键字来限制类的属性和方法的访问权限,它们分别是
  1. public
复制代码
  1. protected
复制代码
  1. private
复制代码


    1. public
    复制代码
    :公共的属性和方法可以被类的实例、类的子类和其他代码访问。
    1. protected
    复制代码
    :受保护的属性和方法可以被类的实例和类的子类访问,但不能被其他代码访问。
    1. private
    复制代码
    :私有的属性和方法只能被类的实例访问,不能被类的子类和其他代码访问。 例如:
  1. <?phpclass Person {    public $name;    protected $age;    private $email;    function __construct($name, $age, $email) {        $this->name = $name;        $this->age = $age;        $this->email = $email;    }    public function sayHello() {        echo "Hello, my name is " . $this->name;    }    protected function getAge() {        return $this->age;    }    private function getEmail() {        return $this->email;    }}
复制代码
上面的代码定义了一个
  1. Person
复制代码
类,其中
  1. $name
复制代码
属性是公共的,
  1. $age
复制代码
属性是受保护的,
  1. $email
复制代码
属性是私有的。
  1. sayHello()
复制代码
方法是公共的,
  1. getAge()
复制代码
方法是受保护的,
  1. getEmail()
复制代码
方法是私有的。

继承

继承是面向对象编程的重要概念之一,它允许我们创建一个新的类,并从一个已有的类中继承属性和方法。继承可以减少代码的重复,增强代码的可维护性和可扩展性。 在PHP中,使用
  1. extends
复制代码
关键字来继承一个类,例如:
  1. <?phpclass Student extends Person {    public $major;    function __construct($name, $age, $email, $major) {        parent::__construct($name, $age, $email);        $this->major = $major;    }    public function sayHello() {        echo "Hello, my name is " . $this->name . " and I'm a student.";    }}
复制代码
上面的代码定义了一个
  1. Student
复制代码
类,它继承自
  1. Person
复制代码
类,并添加了一个
  1. $major
复制代码
属性。它还重写了
  1. sayHello()
复制代码
方法,以便在输出中添加学生的身份信息。 在子类的构造函数中,我们可以使用
  1. parent::__construct()
复制代码
来调用父类的构造函数,以便初始化继承的属性。

多态

多态是面向对象编程的另一个重要概念,它允许我们使用一个基类类型的变量来引用子类对象,从而实现代码的通用性和灵活性。 在PHP中,多态可以通过类型提示和抽象类来实现。 类型提示是一种语法,它允许我们在函数或方法的参数中指定参数的类型,从而限制参数的类型,并提高代码的可读性和可维护性。例如:
  1. <?phpfunction sayHello(Person $person) {    $person->sayHello();}
复制代码
上面的代码定义了一个
  1. sayHello()
复制代码
函数,它接受一个
  1. Person
复制代码
类型的参数。由于
  1. Student
复制代码
类继承自
  1. Person
复制代码
类,所以我们可以将一个
  1. Student
复制代码
类的实例作为参数传递给
  1. sayHello()
复制代码
函数。 抽象类是一种特殊的类,它不能被实例化,只能被用来继承。抽象类中可以定义抽象方法,这些方法没有具体的实现,只是用来规定子类必须实现的方法。例如:
  1. <?phpabstract class Shape {    abstract public function area();}class Rectangle extends Shape {    private $width;    private $height;    function __construct($width, $height) {        $this->width = $width;        $this->height = $height;    }    public function area() {        return $this->width * $this->height;    }}
复制代码
上面的代码定义了一个抽象类
  1. Shape
复制代码
,它有一个抽象方法
  1. area()
复制代码
  1. Rectangle
复制代码
类继承自
  1. Shape
复制代码
类,并实现了
  1. area()
复制代码
方法。 我们可以使用多态来实现一个通用的计算面积的函数,例如:
  1. <?phpfunction getArea(Shape $shape) {    return $shape->area();}$rectangle = new Rectangle(10, 20);echo getArea($rectangle); // 输出 "200"
复制代码
上面的代码定义了一个
  1. getArea()
复制代码
函数,它接受一个
  1. Shape
复制代码
类型的参数,并调用该参数的
  1. area()
复制代码
方法来计算面积。我们可以将一个
  1. Rectangle
复制代码
类的实例作为参数传递给
  1. getArea()
复制代码
函数。
到此这篇关于php面向对象程序设计介绍的文章就介绍到这了,更多相关php面向对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/article/280304.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具