PHP8中伪变量“$this->”和操作符“::”的使用-PHP8知识详解

对象不仅可以调用自己的变量和方法,也可以调用类中的变量和方法。PHP8通过伪变量“$this->”和操作符“::”来实现这些功能。

1.伪变量“$this->”

在通过对象名->方法调用对象的方法时,如果不知道对象的名称,而又想调用类中的方法,就要用伪变量“$this->”。伪变量“$this->”的意思就是本身,成员方法属于哪个对象,$this 引用就代表哪个对象,主要作用是专门完成对象内部成员之间的访问。

使用伪变量“$this->”参考代码:

<?php
class myexample {function fun(){                                    //定义成员方法if(isset($this)){                             //判断变量$this是否存在echo "变量\$this的值是:".get_class($this); //如果存在则输出$this所属类名}else{echo "变量\$this不存在!";}}
}
$myexam=new myexample();                            //类的实例化
$myexam->fun();             //类的实例化并传递参数
?>

以上代码在php8中的运行结果如下:

变量$this的值是:myexample

2、操作符“::”

操作符“::”可以在没有任何声明实例的情况下访问类中的成员,语法格式如下:

关键字::变量名/常量名/方法名

其中关键字主要包括parent、self和类名 3种。

(1)、parent关键字:表示可以调用父类中的成员变量、常量和成员方法。

(2)、self关键字:表示可以调用当前类中的常量和静态成员。

(3)、类名关键字:表示可以调用本类中的常量、变量和方法。

使用操作符“::”参考代码:

<?phpclass Fruit {const NAME="水果";                          //定义常量NAMEfunction __construct(){                     //定义构造方法echo "本商城销量最高的商品类别是:".Fruit::NAME."<br />"; //输出常量的默认值}}class MyFruit extends Fruit {                       //定义Fruit类的子类const NAME="葡萄";                              //定义常量NAMEfunction __construct()                          //定义子类的构造方法{parent::__construct();                      //调用父类的构造方法echo "水果中销量最高的是:".self::NAME." "; //输出本类的常量NAME}}$f=new MyFruit();                                   //类的实例化
?>

以上代码在PHP8中的运行结果如下:

本商城销量最高的商品类别是:水果

水果中销量最高的是:葡萄

到此为止,对象不仅可以调用自己的变量和方法,也可以调用类中的变量和方法。PHP8通过伪变量“$this>”和操作符“::”来实现这些功能就讲解完毕了。

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

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

相关文章

基于微信小程序的校园代送跑腿系统(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

Mooctest

开发者 测试框架junit 1.字符串不能除 2.a给了c 3. 4. 5.输入是否>0 6.注释

Python中的用法与常见问题解析

装饰器是Python语言中一种强大且常用的概念。通过装饰器&#xff0c;我们可以在不修改原始函数代码的情况下&#xff0c;给函数添加额外的功能&#xff0c;比如日志记录、性能分析、输入验证等。在本文中&#xff0c;我们将深入探讨Python中装饰器的用法和常见问题&#xff0c;…

Leetcode刷题笔记--Hot51-60

1--环形链表II 主要思路&#xff1a; 快慢指针&#xff0c;快指针每次走两步&#xff0c;慢指针每次走一步&#xff1b; 第一次相遇时&#xff0c;假设慢指针共走了 f 步&#xff0c;则快指针走了 2f 步&#xff1b; 假设起点到环入口结点的长度为 a&#xff08;不包括入口结点…

【7.Vue 利用Heatmap.js 制作自定义热力图】

1.效果 2.背景 需要根据后端检测的设备的数值显示设备周围的清洁度,用户希望用热力图的方式来显示,于是在网上找了资料,发现可以用Heatmap.js来实现。 Heatmap.js 官网:https://www.patrick-wied.at/static/heatmapjs/ 3.引入组件 安装Heatmap.js npm install Heatmap.…

Nginx之带宽限制解读

目录 基本介绍 指令配置 limit_rate limit_rate_after 实战测试 原理&#xff1a; 令牌桶算法 基本介绍 在高负载的网络环境下&#xff0c;为了保持服务的稳定性&#xff0c;限速 (download rate) 是一种必要的操控拜访量的手法。Nginx 是一款高性能的 Web 服务器和反向代…

踩中AIGC 美图看清自己“工具”本职

日前&#xff0c;美图公司发布 2023 年中期业绩&#xff0c;实现总收入 12.61 亿元&#xff0c;同比增长 29.8%&#xff1b;实现经调整后归母净利润 1.51 亿元&#xff0c;同比增长 320.4%&#xff0c;利润增速是收入增速的十倍。同时&#xff0c;在 AIGC 的加持下&#xff0c;…

JDK21新特性Record Patterns记录模式详解

1 摘要 通过使用记录模式来增强Java编程语言&#xff0c;以解构记录值。记录模式和类型模式可嵌套使用&#xff0c;从而实现强大、声明式和可组合的数据导航和处理形式。 2 发展史 由 JEP 405 提出的预览功能&#xff0c;并在JDK 19发布&#xff0c;然后由 JEP 432 再次预览…

GitLab数据迁移后出现500错误

一、背景 去年做GitLab数据迁移时&#xff0c;写过一篇文章《GitLab的备份与还原》。后来发现新创建的项目没问题&#xff0c;但对于迁移过来的项目&#xff0c;修改名称等信息&#xff0c;或者删除该项目时&#xff0c;会出现500错误&#xff0c;以为是系统问题&#…

websocket请求通过IteratorAggregate实现流式输出

对接国内讯飞星火模型&#xff0c;官方文档接口采用的是websocket跟国外chatgpt有些差异。 虽然官网给出一个简单demo通过while(true)&#xff0c;websocket的receive()可以实现逐条接受并输出给前端&#xff0c;但是通用和灵活度不高。不能兼容现有项目框架的流式输出。故模仿…

安卓Compose(一)

为什么学习安卓Compose&#xff1f; 安卓Compose是一个相对新的UI工具包&#xff0c;它的出现为安卓应用程序开发带来了一系列的好处。下面是一些学习Compose的理由&#xff1a; 声明式UI 与传统的安卓XML布局相比&#xff0c;Compose使用了声明式的UI编程范例。这意味着你可以…

Verilog零基础入门(边看边练与测试仿真)-状态机-笔记(7-10讲)

文章目录 第七讲第八讲第九讲第十讲 第七讲 1、最简单的状态机-三角波发生器 1、两种状态的代码&#xff1a; //最简单的状态机&#xff0c;三角波发生器&#xff1b; timescale 1ns/10ps module tri_gen(clk,res,d_out); input clk; input res; o…

小程序搜索词排名优化的诀窍

随着小程序的普及,如何提高小程序在搜索结果中的排名也变得重要。优化小程序搜索词排名可以扩大用户流量,提高曝光度。那么,小程序搜索词排名优化需要注意哪些方面呢?下面我就结合自己的经验,和大家分享些实用技巧。【名即薇】 首先,选择合适的搜索词非常关键。目标是找到既符…

C语言 宏定义使用方式

在C语言中&#xff0c;宏定义是一种预处理指令&#xff0c;用于为代码创建别名或常量。它使用#define关键字来定义宏。 以下是宏定义的使用方式&#xff1a; 1)简单的宏定义&#xff1a; #define PI 3.14159这将为数值3.14159定义一个名为PI的宏。在代码中&#xff0c;每次出…

【Linux】【网络】传输层协议:TCP

文章目录 TCP 协议1. TCP 协议段格式2. TCP 报头解析3. TCP 的可靠性4. 面向字节流5. 粘包问题6. 连接队列维护 TCP 的 确认应答机制TCP 的 超时重传机制TCP 的 三次握手TCP 的 四次挥手setsockopt 函数&#xff1a;设置套接字选项&#xff0c;解决 TIME_WAIT 状态引起的 bind …

在B站上如何把已经上传的视频做成合集?

参考视频: 【在B站上如何把已经上传的视频做成合集&#xff1f;】 https://www.bilibili.com/video/BV1Uf4y1G7eR/?share_sourcecopy_web&vd_source8af85e60c2df9af1f0fd23935753a933 【B站投稿视频合集的几种方式最全攻略】 https://www.bilibili.com/video/BV1jZ4y1h7…

SpringCloud 学习(三)Ribbon 和 Feign

4. Netflix.Ribbon 4.1 简介 (1) 概念 Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡工具。 (2) 负载均衡&#xff08;LB&#xff1a;LoadBalance&#xff09;和集群架构 应用集群&#xff1a;将同一应用部署到多台机器上&#xff0c;组成处理集群&…

Android逆向技术高阶大法

原文链接 Android逆向技术高阶大法 安卓应用是一个客户端&#xff0c;与传统软件类似&#xff0c;需要把软件打包&#xff0c;然后通过某种渠道&#xff08;应用市场&#xff09;分发给用户&#xff0c;这是常规的发布方式&#xff0c;它的更新节奏很慢&#xff0c;从你在应用…

maven settings.xml文件(包含了配置阿里云镜像)

mac 的 settings.xml 我配置的位置是&#xff1a; /Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/conf/settings.xml 然后 local repository 我配置的位置是&#xff1a; /Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/conf/repos…

Docker 容器监控之CAdvisor+InfluxDB+Granfana

是什么 一句话&#xff1a;CAdvisor监控收集InfluxDB存储数据Granfana展示图表 CAdvisor InfluxDB Granfana 总结 容器编排CIG CIG CAdvisorInfluxDBGranfana 1、新建目录 2、新建docker-compose.yml文件 version: 3.1volumes:grafana_data: {}services:influxdb:image: t…