Php,即使使用反射,我也无法访问继承的私有变量

2023-12-07

class A
{
    private $a;
}

class B extends A
{
    function __construct()
    {
        (new \ReflectionClass($this))->getProperty('a')->setAccessible(true);
        echo $this->a;
    }
}

(new B());

这应该可以工作,尽管它会触发异常:“属性 a 不存在”。很多文章都说反射是解决方案


你正在通过ReflectionClass的一个实例B,无权访问$a。你需要的是传递一个实例A反而。这应该有助于澄清您需要在这里做什么

class A
{
    private $a = 'Bob';
}

class B extends A
{
    function __construct()
    {
        $instance = new A();
        $reflection = new \ReflectionClass($instance);
        $property = $reflection->getProperty('a');
        $property->setAccessible(true);
        echo $property->getValue(new A());
    }
}

(new B());

Demo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Php,即使使用反射,我也无法访问继承的私有变量 的相关文章

  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • 是否必须配置 PHP 才能通过 PHP 扫描每个目录的配置 INI 文件(即我的情况下的 .htaccess 文件)?

    我在用着Windows 10 家庭单语言 64 位操作系统在我的机器上 我已经安装了最新的副本XAMPP服务器在我的机器上附带PHP 7 2 7 我从 PHP 手册中阅读了以下页面 扫描目录 https secure php net man
  • 如何复制 ArrayIterator 以保留其当前迭代位置?

    因为这似乎是我必须做的才能达到这种效果 arr a gt first b gt second iter new ArrayIterator arr Do a bunch of iterations iter gt next new iter
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • 从 octobercms 中的非 ajax 表单获取输入值

    我正在尝试构建一个简单的搜索功能 下面是我的搜索表格
  • 如何使用 Facebook SDK API 为页面/网址“点赞”?

    我正在使用这段代码 facebook gt api me likes post array url gt http www google com 我收到以下错误 Fatal error Uncaught OAuthException 200
  • zip 文件的校验和

    我目前正在开发一个工具 它上传一组文件 然后使用 md5 校验和将文件与上一批上传的文件进行比较 并告诉您哪些文件已更改 对于常规文件 这工作正常 但某些上传的文件是 zip 存档 即使其中的文件相同 它们几乎总是会发生变化 有没有一种方法
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • 通过 facebook graph API 检索 facebook 用户的邮政编码

    我正在尝试使用 facebook graph API 检索用户的邮政编码 我正在使用以下代码 代码在php ini中 facebook new Facebook array appId gt APP ID secret gt APP SEC
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • PHP Solr PECL 扩展安装

    我已经使用命令安装了 pecl solr pecl install solr 和梨使用 wget http pear php net go pear phar php go pear phar 重启Apache后 我仍然收到错误 Fatal
  • Laravel 5 中的自定义验证器

    我正在将 Laravel 应用程序从 4 升级到 5 但是 我有一个自定义验证器 但无法运行 在L4中 我做了一个验证器 php文件并将其包含在全局 php using require app path validators php 我尝试
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el

随机推荐

  • React Native无法连接到Android中的SSE

    我正在使用该包 https www npmjs com package react native sse 即使我从文档中复制粘贴代码 我也无法设法从 android 中的服务器接收事件 import EventSource from rea
  • 在谷歌地图中设置城市周围的边界

    我正在寻找一种使用 JavaScript 在 Google 地图 API V3 中设置特定城市 城镇周围边界的方法 API 中是否支持这种类型的事情 基本上 我不希望我的用户能够比城市更远地平移地图 包括乡村地区而不仅仅是城市范围 那么您想
  • 用 Java 下载文件。多线程,这有效吗?

    首先 每个人都需要知道我对 Java 编码还比较陌生 更准确地说 我对面向对象编程完全陌生 对于这个问题 我正在尝试创建一个下载类来更新进度条以显示其进度 可能还有我决定将来更新的其他内容 目前的问题是 在我看来 这不应该起作用 我可以在
  • 如何检查用户是否在 Firebase 和 Express/Node.js 中经过身份验证?

    如果我有一个页面只能由经过身份验证的用户访问 我如何检查用户是否经过身份验证 我尝试使用 firebase auth currentUser null 但我收到一条错误消息 TypeError firebase auth is not a
  • Pyplot 在缩放时保持文本大小

    我想在 pyplot 图中包含一些文本 并且能够在不改变比例的情况下放大它 请参阅下面的情节示例 我希望发生什么以及实际发生了什么 重现错误的代码 import matplotlib pyplot as plt plt plot 0 0 1
  • 如何从clickhouse中的json中提取json?

    我的基地有一个 json a 1 b 2 c d 3 e str 1 d 4 e str 2 我需要获取每个键的所有唯一值 但在提取键 d 和键 e 的值时遇到一些问题 Using SELECT DISTINCT JSONExtractRa
  • 如何改变gitbook的代码填充效果?

    这是stackoverflow的markdown代码效果 Code from stackoverflow Nearly no extra space at the beginning And this is the markdown cod
  • php $_SESSION 变量随机消失和重新出现

    Preface 这是一个 发展 之前的一个问题我的 他的答案最终没有解决我的问题 但是通过尝试所有建议并尝试其他东西 我发现真正的问题是别的东西 所以我在这里重新表述我的问题 我有一个登录页面 系统 多年来一直正常工作 让用户保持登录状态
  • 使用 Swift 迭代 Firebase 中的嵌套快照子项

    我正在尝试循环遍历 Firebase 数据库中的子级以检索嵌套键 我的数据库结构如下 Users Username Favorites Location Latitude 123 LocationName San Francisco Lon
  • 如何将包含基于位置的数据的列添加到 R 中的 SpatialPolygonsDataFrame 中?

    我在 R 中有空间数据 它作为SpatialPolygonsDataFrame library sp library tmap d lt readRDS data rds qtm d 例如 我使用了德国的数据http www gadm or
  • 在 Chrome 中自动录制语音输入

    我正在尝试自动记录 Google 中的语音语音输入 仅适用于 Chrome 事实上 用户必须单击麦克风才能开始录音 但我正在进行一个用户不会与计算机交互的安装 因此我必须以其他方式触发录制 就目前看来 您无法通过代码访问语音输入功能 即您无
  • 如何使用 eyed3 从 python 中的 .mp3 文件获取详细信息(标题、艺术家)

    这是我的代码 import eyed3 audiofile eyed3 load 19 Calvin Harris Summer mp3 print audiofile tag artist 这是一个错误 Traceback most re
  • 提交后保留所选值

    我有一个时间下拉选择 我想在按下提交按钮后保留所选值 此处为 HTML
  • 如何阅读PHP手册中的函数定义

    我正在浏览下面这个函数的 PHP 文档 并试图理解第二个参数之前的 是什么意思 string basename string path string suffix 为什么不简单地提及如下 string basename string pat
  • 如何找到 SwiftUI UIViewRepresentable 的框架

    我正在尝试包装一个自定义子类UILabel in UIViewRepresentable在 SwiftUI 中使用它 我在用着 sizeToFit并打印框架 当它在包装中时看起来是正确的 func makeUIView context Co
  • SML 类型推断的提示

    我是 SML 的新手 我正在尝试练习 SML 类型参考 我正在尝试演绎以下类型 a fun add42 x x 42 b fun comp F G let fun C x G F x in C end c fun compA42 x com
  • Maven 在 Spring 项目构建中尝试与数据库建立连接失败

    我为我的 spring 项目制作了 docker compose 和 dockerfile 但它在 Maven 构建阶段失败 因为正在尝试与 postgres 服务建立连接 我不知道如何解决它 这是我的 docker compose 文件
  • 如何使用正则表达式验证用户名?

    这似乎符合我定义的规则 但我今晚才开始学习正则表达式 所以我想知道它是否正确 Rules 用户名可以由小写字母组成 和首都 用户名可以由字母数字组成 人物 用户名可以包含下划线 以及连字符和空格 不能是两个下划线和连字符 或连续两个空格 不
  • GraphViz:压缩自动生成的图表

    我正在尝试可视化 Excel 文件的两列 A 列包含类别 而 B 列包含单独的条目 点文件由 Excel 使用以下公式生成 IFERROR CONCATENATE subgraph cluster A2 B2 label A2 然后使用 u
  • Php,即使使用反射,我也无法访问继承的私有变量

    class A private a class B extends A function construct new ReflectionClass this gt getProperty a gt setAccessible true e