php面向对象全攻略 (九)访问类型

下面是关于“php面向对象全攻略(九)访问类型”的完整攻略:

一、什么是访问类型?

PHP 面向对象编程中,访问类型(Access Modifiers)是用来控制类成员(属性和方法)被访问的级别。PHP 支持 3 种不同的访问类型:

  • public(公共的):公共成员可以在类的内部和外部进行访问。
  • protected(受保护的):受保护成员只能在该类和其子类中进行访问。
  • private(私有的):私有成员只能在该类中进行访问。

二、如何使用访问类型?

访问类型可以通过在类成员前面添加相应的关键字来使用。例如,如果我们想要将一个属性设置为受保护的,我们可以在属性前加上 protected 关键字:

class Person {
    protected $name;
}

同样地,如果我们想要将一个方法设置为私有的,我们可以在方法前加上 private 关键字:

class Person {
    private function getAge() {
        return $this->age;
    }
}

三、访问类型示例

下面是两个访问类型的示例,分别用于演示受保护和私有成员的访问控制级别:

1. 受保护成员示例

class Person {
    protected $name;
    protected function getInfo() {
        return $this->name . " is a person.";
    }
}

class Student extends Person {
    public function __construct($name) {
        $this->name = $name;
    }
    public function studentInfo() {
        return $this->getInfo();
    }
}

$stu = new Student('Tom');
echo $stu->studentInfo();

在上面的示例中,Person 类中的 $name 属性和 getInfo() 方法都被标记为受保护的,并且 Student 类继承了 Person 类。在 Student 类中,我们可以在构造函数中设置 $name 属性,因为 $name 属性被标记为受保护的,所以子类可以访问。studentInfo() 方法调用了 getInfo() 方法,但 getInfo() 方法也被标记为受保护的,但它仍然可以被子类调用。

2. 私有成员示例

class Person {
    private $name;
    private function getInfo() {
        return $this->name . " is a person.";
    }
    public function getPerInfo() {
        return $this->getInfo();
    }
}

class Student extends Person {
    public function __construct($name) {
        $this->name = $name;
    }
}

$stu = new Student('Tom');
echo $stu->getPerInfo();

在上面的示例中,Person 类中的 $name 属性和 getInfo() 方法都被标记为私有的。在 Person 类中,我们定义了一个 getPerInfo() 公共方法,该方法调用了私有的 getInfo() 方法。在 Student 类中,我们创建了一个新的 Student 实例并将其 $name 属性设置为 'Tom'。我们尝试访问 $stu->getPerInfo() 方法,由于该方法访问了 $name 属性和 getInfo() 方法,因此会抛出错误。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php面向对象全攻略 (九)访问类型 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 微信小程序实现上传多张图片、删除图片

    实现上传多张图片、删除图片的微信小程序攻略如下: 上传多张图片 1. 引入wx.chooseImage API 在小程序页面中,使用wx.chooseImage API即可调用微信客户端的图片选择功能,将选择的图片上传到服务器。 示例代码: wx.chooseImage({ success: function (res) { var tempFilePath…

    PHP 2023年5月23日
    00
  • PHP获取当前文件所在目录 getcwd()函数

    PHP获取当前文件所在目录的方法有多种,其中之一就是使用getcwd()函数。 什么是getcwd()函数? getcwd()函数用于获取当前php文件所在的工作目录,也即当前php文件所在的路径。 getcwd()函数的语法 getcwd()函数的语法如下: string getcwd (void); 如何使用getcwd()函数? 在使用getcwd()…

    PHP 2023年5月26日
    00
  • PHP数组遍历的几种常见方式总结

    PHP数组遍历的几种常见方式总结 在 PHP 中,数组是一种非常常见的数据结构。正确使用 PHP 数组遍历方式可以提高代码的效率。接下来将介绍 PHP 数组遍历的几种常见方式。 1. for 循环遍历 PHP 中使用 for 循环来遍历数组是一种非常常见的方式。通过循环逐一获取数组元素,从而实现对数组的遍历。 $fruit = array(‘apple’, …

    PHP 2023年5月25日
    00
  • WIN2003+IIS6 PHP 5.3.8安装配置教程[图文]

    以下是WIN2003 + IIS6 PHP 5.3.8安装配置的完整攻略: 步骤一: 安装IIS6 安装IIS6需要使用”控制面板” > “添加/删除程序”。在”添加/删除程序”的左边选择”添加/删除Windows组件”,然后勾选”Internet Information Services (IIS)”,点击”下一步”之后进行安装,完成后重启Windo…

    PHP 2023年5月24日
    00
  • PHP crc32()函数讲解

    PHP crc32()函数讲解 CRC32简介 CRC(Cyclic Redundancy Check)循环冗余检测是一种校验方式,被广泛应用于数据传输和存储的领域。CRC32是一种32位的循环冗余校验码,用于文件校验、文件比较和数据相似度比较等操作。 crc32()函数简介 crc32()函数是PHP中用于生成CRC32校验码的函数,它对传入的字符串进行计…

    PHP 2023年5月26日
    00
  • PHP strtotime函数详解

    PHP strtotime函数详解 什么是 strtotime 函数? PHP 中的 strtotime 函数可以将一个日期时间字符串转换为 Unix 时间戳。 函数语法 strtotime ( string $time [, int $now = time() ] ) : int $time:必需,待转换为 Unix 时间戳的时间字符串。 $now:可选,…

    PHP 2023年5月26日
    00
  • Yii框架实现乐观锁与悲观锁流程详解

    以下是关于“Yii框架实现乐观锁与悲观锁流程详解”的完整使用攻略: 基础知识 在了解Yii框架实现乐观锁与悲观锁之前,需要掌握一些基础知识,包括锁的基本概念、乐观锁和悲观锁的区别、Yii框架中的锁机制等。以下是一些常见的基础知识: 锁的基本概念,包括锁的定义、锁的分类等。 乐观锁和悲观锁的区别,包括乐观锁和悲观锁的定义、观锁和悲观锁的应用场景等。 Yii框架…

    PHP 2023年5月12日
    00
  • Laravel中如何轻松容易的输出完整的SQL语句

    在Laravel中,可以通过启用SQL日志来轻松地输出完整的SQL语句。具体步骤如下: 打开Laravel项目中的配置文件 config/database.php,找到 connections 部分。 找到对应的数据库连接配置(比如 mysql),将该连接配置的 log_queries 值设置为 true。代码如下: php ‘mysql’ => [ …

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部