13、PHP面向对象2(方法的访问控制、子类继承、常量)

1、类中的方法可以被定义为公有,私有或受保护。如果没有设置这些关键字,则该方法默认为公有。

public定义的方法,可以在类外使用。

protected定义的方法,只能在本类或子类的定义内使用。

private定义的方法,只能在本类的定义内使用。

私有的变量或方法不能被直接访问,但可以将其放入在一个公共的方法里面,实现间接访问。

<?php
class myClass{public function __construct(){}//公有的构造函数public function myPublic(){}//公有的方法protected function myProtected(){}private function myPrivate(){}function Foo()//默认为公有{$this->myPublic();$this->myProtected();$this->myPrivate();}
}$mc=new myClass;
$mc->myPublic();
//$mc->myProtected();//致命错误
//$mc->myPrivate();//致命错误
$mc->Foo();//默认公有,可以执行class mySubClass extends myClass
{function FooSub(){$this->myPublic();$this->myProtected();
//        $this->myPrivate();//致命错误}
}
$mcSub=new mySubClass;
$mcSub->myPublic();
$mcSub->FooSub();
?>

2、子类对象执行方法时,都有时只执行子类的;

父类与子类只有一个时,执行有的那一个;

执行子类没有的方法时,会执行父类相应名称的方法,并会执行方法内的父类私有方法和子类的公共方法,因为私有方法只能被相应的类执行。

<?php
class Bar
{public function test(){$this->testPrivate();$this->testPublic();}public function testPublic(){Echo "bar::testPublic\n";}private function testPrivate(){echo "bar::testPrivate\n";}
}class Foo extends Bar
{public function testPublic(){echo "foo::testPublic\n";}private function testPrivate(){echo "foo::testPrivate\n";}
}$myBar=new Bar;
$myBar->test();
echo "\n";
$myFoo=new Foo;
$myFoo->test();
$myFoo->testPublic();
?>

执行结果:执行子类foo的testpublic。

 3、类中常量用const定义。访问都用符号“::”。

  • 访问可以通过类名直接访问
  • 类名赋予变量名,用变量名访问
  • 用实例化的对象访问
<?php
class myClass{const c1="常量";function showConstant(){//echo $this->c1.PHP_EOL;echo self::c1.PHP_EOL;}
}echo myClass::c1.PHP_EOL;//类名直接访问
$classname="myClass";//类名赋予变量名echo $classname::c1.PHP_EOL;//用变量名访问$class1=new myClass;$class1->showConstant();echo $class1::c1.PHP_EOL;//用实例访问
?>

 


PHP是世界上最好的编程语言!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/9014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php学习当中遇到过哪些问题

PHP是一种流行的服务器端脚本语言&#xff0c;广泛用于Web应用程序和网站的开发。虽然PHP相对容易学习&#xff0c;但它仍然可能会给初学者带来一些问题和挑战。本文将探讨一些PHP初学者可能会遇到的常见问题&#xff0c;并提供一些解决方案。 理解PHP的基本语法和语义 PHP的语…

17网商品详情API:使用与数据解析方法

17网是一家知名的电商平台&#xff0c;提供了大量的商品选择。开发者可以通过17网的商品详情API来快速获取和展示商品的详细信息。 17网商品详情API简介 介绍17网商品详情API的作用和目的&#xff0c;解释为何使用该API可以实现丰富的商品详情展示功能。 获取API访问权限 说…

ubuntu开机自启动

ubuntu开机自启动 1、建一个test.sh脚本&#xff0c;并写入 #!/bin/sh gnome-terminal -x bash -c ‘cd /home/文件路径/;python3 main.py’ exit 0 2、:wq!保存 3、创建rc-local.service文件&#xff08;sudo vim /etc/systemd/system/rc-local.service&#xff09;&#xf…

Linux系统安装部署MySQL完整教程(图文详解)

前言&#xff1a;最近网上翻阅了大量关于Linux安装部署MySQL的教程&#xff0c;在自己部署的时候总是存在一些小问题&#xff0c;例如&#xff1a;版本冲突&#xff0c;配置失败和启动失败等等&#xff0c;功夫不负有心人&#xff0c;最后还是安装部署成功了&#xff0c;所以本…

[SQL系列] 从头开始学PostgreSQL 事务 锁 子查询

[SQL系列] 从头开始学PostgreSQL 索引 修改 视图_Edward.W的博客-CSDN博客https://blog.csdn.net/u013379032/article/details/131818865 事务 事务是一系列逻辑相关的数据库操作&#xff0c;可以作为一个整体进行操作或者回滚。事务通常会包含一个序列的读或者写操作&#xf…

Flink任务优化分享

Flink任务优化分享 1.背景介绍 线上计算任务在某版本上线之后发现每日的任务时长都需要三个多小时才能完成&#xff0c;计算时间超过了预估时间&#xff0c;通过Dolphinscheduler的每日调度任务看&#xff0c;在数据层 dwd 的数据分段任务存在严重的性能问题&#xff0c;每天…

【python】flask查询更新指定的某一条记录

PackageRecord.query.filter_by(idpackage_id).update(json_data) 这段代码的问题在于它不能正确地更新指定的记录。这是因为 update() 方法是 SQLAlchemy 提供的一种批量更新的方法&#xff0c;他通过接收一个字典对象来更新记录。但是在你的代码中&#xff0c;json_data 应该…

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片

20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片 2023/7/21 22:58 1、前言&#xff1a; AES-128加密的ts视频切片【第一个】&#xff0c;打开有时间限制的&#xff01; https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…

研发机器配网方案(针对禁止外网电脑的组网方案)

背景&#xff1a;公司是研发型小公司&#xff0c;难免会使用A某D和K某l 等国内免费软件&#xff0c;这两个是业界律师函发得最多的软件。最简单的方案是离网使用&#xff0c;但是离网使用比较麻烦的是要进行文件传输&#xff0c;需要使用U盘拷贝&#xff0c;另外研发型企业一般…

ChatGPT:人机交互新境界,AI智能引领未来

一、ChatGPT&#xff1a;智能交流的新标杆 ChatGPT是基于GPT技术的最新版本&#xff0c;拥有深度学习模型的基因。它通过在大量数据上进行预训练&#xff0c;可以理解和生成自然语言&#xff0c;从而实现了与人类更加自然流畅的对话和交流。 二、ChatGPT的技术背景和工作原理 …

【动态规划上分复盘】这是你熟悉的地下城游戏吗?

欢迎 前言一、动态规划五步曲二、地下城游戏题目分析思路&#xff1a;动态规划具体代码如下 总结 前言 本文讲解关于动态规划思路的两道题目。 一、动态规划五步曲 1.确定状态表示&#xff08;确定dp数组的含义&#xff09;2.确定状态转移方程&#xff08;确定dp的递推公式&a…

Docker:Docker-Compose

Docker:Docker-Compose 一、Docker-Compose 介绍1.1 Docker-Compose 概述二、Docker-Compose 安装2.1 Docker Compose 环境安装2.2 下载2.3 安装三、Docker-Compose 使用3.1 YAML 文件格式及编写注意事项3.2 使用 YAML 时需要注意下面事项3.3 Docker-Compose配置常用字段3.4 D…

Python中pyecharts模块

pyecharts模块 官网&#xff1a;pyecharts官网 pyecharts框架画廊 如果想要做出数据可视化效果图, 可以借助pyecharts模块来完成概况 : Echarts 是个由百度开源的数据可视化&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到了众多开发者的认可. 而…

java面试整理

一、 JVM部分 JVM内存溢出(一)之排查初体验_少负 | 气节的博客-CSDN博客 JVM内存溢出(二)之双亲委派机制_少负 | 气节的博客-CSDN博客 JVM内存溢出(三)之JVM8内存模型_少负 | 气节的博客-CSDN博客 JVM内存溢出(四)之垃圾回收器_少负 | 气节的博客-CSDN博客 JVM内存溢出(五…

解决 excel 文件头问题 sap 不识别

一个任务需要上传 excel 到 sap 使用 openpyxl 生成的不识别 excel 保存后可以识别 经过分析&#xff0c;可能是文件头的问题&#xff0c;因为看起来没有区别。 excel 的文件头为 [Content_Types].xml openpyxl 生成的文件头为 docProps/app.xml 修改为文件头有点过于繁琐…

巅峰极客2023 hellosql

随便输一个payload&#xff0c;有waf 这题只有两个回显&#xff0c;分别是太酷啦和nonono&#xff0c;不显示报错、登录成功等各种信息&#xff0c;目前只能想到用时间盲注。 抓包fuzz&#xff0c;194都是被过滤的 不止这些&#xff0c;手工测出来if、sleep、benchmark、*、rp…

办公室安全升级,如何保障人身财产安全?

视频监控&#xff0c;一种常见的安全措施&#xff0c;以监视和记录办公室内的活动。这项技术为企业提供了许多优势&#xff0c;包括保障员工和财产安全、帮助调查犯罪事件、提高业务管理效率以及应对突发事件。 因此&#xff0c;在合理范围内应用视频监控&#xff0c;将为企业提…

【算法题】2763. 所有子数组中不平衡数字之和

题目&#xff1a; 一个长度为 n 下标从 0 开始的整数数组 arr 的 不平衡数字 定义为&#xff0c;在 sarr sorted(arr) 数组中&#xff0c;满足以下条件的下标数目&#xff1a; 0 < i < n - 1 &#xff0c;和 sarr[i1] - sarr[i] > 1 这里&#xff0c;sorted(arr) 表…

【Python提取Excel表格中符合条件的数据】

使用Python提取Excel表格中符合条件的数据 在数据处理和分析的过程中&#xff0c;我们经常需要从Excel表格中提取特定条件下的数据。Python的pandas库为我们提供了方便的方法来进行数据查询和过滤。 表格内容如下&#xff1a; 序号xy11.52.823.24.732.13.644.31.954.13.2 我…

go压力测试

压力测试 1.1.1. Go怎么写测试用例 开发程序其中很重要的一点是测试&#xff0c;我们如何保证代码的质量&#xff0c;如何保证每个函数是可运行&#xff0c;运行结果是正确的&#xff0c;又如何保证写出来的代码性能是好的&#xff0c;我们知道单元测试的重点在于发现程序设计…