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日

相关文章

  • php读取本地文件常用函数(fopen与file_get_contents)

    当我们需要在PHP中读取本地文件时,我们通常会使用两种不同的函数:fopen和file_get_contents。 fopen fopen函数用于打开一个文件,并返回其指针。我们可以使用这个指针来读取文件的内容,或者将内容写入文件中。以下是使用fopen函数读取本地文件的基本步骤: 打开文件:使用fopen函数打开文件,需要提供文件路径和打开方式(读、写、追…

    PHP 2023年5月26日
    00
  • smarty学习笔记之常见代码段用法总结

    下面是“smarty学习笔记之常见代码段用法总结”的完整攻略。 一、什么是Smarty? Smarty是一个PHP的模板引擎,它把PHP逻辑和HTML页面的分离,可以让HTML页面与PHP菜单逻辑分离开。 二、Smarty的安装 在Windows环境下,可以通过在Apache服务器环境的PHP目录下安装Smarty来使其工作。 三、常见的Smarty代码段用…

    PHP 2023年5月26日
    00
  • 微信小程序 wx.login解密出现乱码的问题解决办法

    微信小程序 wx.login解密出现乱码的问题解决办法 在微信小程序开发中,经常会用到 wx.login 方法获取用户登录凭证 code,然后将 code 发送给服务器进行解密验证。但是,在解密时可能会遇到解密出现乱码的问题,本文将详细讲解如何解决这个问题。 问题描述 当获取用户登录凭证 code 后,可以调用微信提供的 wx.getUserInfo 方法获…

    PHP 2023年5月23日
    00
  • php实现子字符串位置相互对调互换的方法 原创

    实现子字符串位置相互对调互换的方法,可以通过下标和字符串函数的组合来完成。 具体实现方法如下: 1.使用substr和字符串拼接实现 substr函数可以用来截取字符串,语法为:substr(string,start,length) 其中,string为要截取的原始字符串,start为起始位置(也就是子字符串的开始位置),length为截取的长度。 那么,我…

    PHP 2023年5月26日
    00
  • WIN8.1下搭建PHP5.6环境

    WIN8.1下搭建PHP5.6环境攻略 1. 安装Apache服务器 下载Apache服务器压缩包,解压到任意目录下; 修改Apache服务器配置文件httpd.conf,修改以下内容: #LoadModule log_config_module modules/mod_log_config.so LoadModule rewrite_module modu…

    PHP 2023年5月23日
    00
  • 菜鸟学PHP之Smarty入门

    菜鸟学PHP之Smarty入门 简介 Smarty是一个模板引擎,它专门用于分离应用程序逻辑和表示层。它将模板和PHP代码分开处理,在模板中只包含基础HTML、CSS和JavaScript,而不包含PHP的逻辑结构和语句。 Smarty支持标记、变量、修饰器和PHP函数调用等。Smarty的使用可以提高应用程序的可维护性,降低维护成本,极大地提高了开发效率。…

    PHP 2023年5月23日
    00
  • php生成PDF格式文件并且加密

    生成PDF格式文件并且加密是一个比较常见的需求,本文将介绍如何使用PHP生成加密PDF文件。 步骤一:安装依赖库 首先我们需要安装依赖库 TCPDF 和 MPDF。这两个库都是开源的,分别用于生成PDF文件和加密PDF文件。 使用composer进行安装,执行如下命令: composer require tecnickcom/tcpdf composer r…

    PHP 2023年5月23日
    00
  • 详解PHP数组赋值方法

    关于“详解PHP数组赋值方法”的完整攻略,我可以这样来讲解: 标题 (1)数组基础知识 在介绍PHP数组赋值方法之前,我们需要先了解一些数组的基础知识。数组是一种用来存储多个相同或不同类型的元素的数据结构。在PHP中,数组是一种容器,它能够容纳其他类型数据,包括标量、对象、数组等等。 PHP中的数组类型分为两种:索引数组和关联数组。索引数组使用数字下标来访问…

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