我可以通过 Reflection 获取私有财产的价值吗?

2024-07-04

它似乎不起作用:

$ref = new ReflectionObject($obj);

if($ref->hasProperty('privateProperty')){
  print_r($ref->getProperty('privateProperty'));
}

它进入 IF 循环,然后抛出错误:

属性 privateProperty 不存在

:|

$ref = new ReflectionProperty($obj, 'privateProperty')也不起作用...

The 文档页 http://www.php.net/manual/en/class.reflectionproperty.php列出了一些常量,包括IS_PRIVATE。如果我无法访问私有财产,我该如何使用它呢?


class A
{
    private $b = 'c';
}

$obj = new A();

$r = new ReflectionObject($obj);
$p = $r->getProperty('b');
$p->setAccessible(true); // <--- you set the property to public before you read the value

var_dump($p->getValue($obj));

Update:从 PHP 8.1.0 开始,调用ReflectionProperty::setAccessible https://www.php.net/manual/en/reflectionproperty.setaccessible.php方法没有效果;默认情况下可以访问所有属性。

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

我可以通过 Reflection 获取私有财产的价值吗? 的相关文章

  • 我应该如何在 Wordpress 中使用准备好的语句和查询中的变量?

    我目前正在学习 Wordpress 和 PHP 我也在使用 WooCommerce 我目前有一个包含三个输入字段的表单 我想检查用户输入的有关其订单的数据是否正确 以便用户可以继续进入下一页 我当前的代码如下所示 我不确定我是否走在正确的方
  • 如何将路径附加到 .htaccess 中的 PHP include_path

    目前在我的网站上我使用的语句如下 include head php include head php include head php 取决于我有多少嵌套文件夹 我确信有更好的方法来做到这一点 我相信 htaccess是解决方案 但我不确定
  • $.getJSON 和 PHP 文件

    是否可以隐藏 php 文件的名称 document ready function getJSON getdata php function returned data if returned data 1 div wall html use
  • 从 irb 获取所有局部变量或可用方法?

    当我进入 irb 并输入不存在的命令时 我收到一条错误消息 undefined local variable or method my method for main Object NameError 有没有办法只获取可用的局部变量或方法的
  • 如何通过 AngularJS 使用 SOAP WebService?

    好吧 我有一个 SOAP WebService 通常供 PHP 客户端使用 工作完美 通过 ajax 消费这个 php 并填充我的模板 我当前的应用程序执行以下过程Angular lt gt PHP lt gt service wsdl 我
  • 在 PHP 中组合数组

    尝试学习 PHP 中的数组 为简洁起见 发布了片段 HTML 表单在这里 p What are your favorite type of cookies p
  • 使用 Cookie 记住我时的安全性

    我已经在 PHP 中实现了一个登录类 并且想要创建一个记住账号键入功能 这样用户就不必每次访问都登录 我对此进行了一些研究 并准备使用 PHP setcookie 编写它 但后来遇到了这个页面 如何使用 jquery 创建 记住我 并存储
  • 从数组中获取特定长度的所有可能的字符串组合的算法

    从给定数组中获取具有最小和最大长度值的所有可能的字符串组合的最佳算法是什么 注意 这会增加复杂性 因为与这些链接到的问题不同 该值是可变的 例如 letters array a b c 1 2 3 min length 1 max leng
  • Java从受限层调用方法

    我什至不确定这是否可行 但我想询问社区的总体意见 我必须解决以下问题 我的项目有 2 层 一个核心层和一个业务层 该核心层提供业务层 这时候Business类就可以导入Core类 为所欲为了 核心类只能导入核心类并使用其方法 禁止访问业务类
  • 计算已发布字符串中的行数

    我试过这个 PHP 中计算文本区域中的新行以调整容器大小 https stackoverflow com questions 1743745 count new lines in textarea to resize container i
  • 以限制公共访问同时仍允许父类访问的方式覆盖子类中的公共方法?

    我有一个通用的 Collection 类 具有各种公共 getter 方法 要从 Collection 中获取一项 请调用 get 还有几种返回多个项目的方法 getMany getRange getAll find findAll que
  • 从方法符号和主体创建方法定义树

    有没有方便的方法来转MethodSymbol http www scala lang org archives downloads distrib files nightly docs library index html scala re
  • 如何使用 Android Volley 显示/请求 JSON 对象?

    我在 Android Studio 中遇到如何请求 JSON 对象的问题 我的 Logcat 只能打印 String onResponse 而不能打印 JSONObject 值 我在 AccessActivity java 内的 try 行
  • 将 3 个具有透明度的图像组合在一起

    我正在做这个项目 我想将三张图像合并为一张 到目前为止 有效的方法是使每个图像 jpg 透明 但将它们合并成新的 png 图像后 透明度就消失了 这是代码 function CreateMyCoolOutfitBaby Outfitwidt
  • php curl 获取 html 和 js 渲染

    php curl 只获取html页面的源代码 不执行js脚本 我需要我的网站获取已执行所有 JavaScript 的源代码 我使用ajax 但无法在页面中添加更多js 因为当我加载另一个页面时脚本会保留 我找到了 SpiderMonkey
  • PHP 警告:模块“mcrypt”已加载

    当我使用 PHP 运行命令时 它显示一个错误 例如当我跑步时php v查看我的 PHP 版本 它显示一个错误 然后显示有关 PHP 的信息 模块 mcrypt 已加载到第 0 行的 未知 中 zied ubuntu php v PHP Wa
  • preg_replace '

    ' 为 '
    '?

    我的代码删除了 p 起始标签 但现在我想替换结尾 p 带换行符的标签 我怎样才能做到这一点 这就是我所拥有的 content This is the content newcontent preg replace
  • 解析错误:语法错误,意外的 T_SL PHP heredoc

    我不断收到以下错误 解析错误 语法错误 home a4999406 public html willingLog html 第 70 行出现意外的 T SL 以下代码 第一行是第 70 行 echo lt lt
  • 从 android 发送数组并使用 Volley 在 PhP 服务器接收

    你好我想发送一个字符串值数组到 PhP 服务器和 PhP 解码并将它们存储在 PhP 变量中 这是我在 android studio 的代码 private void getEventDetailRespond RequestQueue r
  • 如何读取PHP上传的文件头?

    我们能否在PHP中读取文件的头信息来判断上传的文件类型 我不想依赖 FILES control name from client type 我们知道 该属性通过读取上传文件的扩展名来确定文件类型 如果用户重命名怎么办 test jpg gt

随机推荐

  • SharePoint Web 部件与 ASP.NET Web 部件

    有人可以告诉我 SharePoint Web 部件和 ASP NET Web 部件之间的区别吗 我发现描述差异的信息很少 提前致谢 MSDN 在 ASP NET 2 0 Web 部件和 Windows SharePoint Services
  • MacOS 上的 Jenkins 发出“Docker:找不到命令”

    当使用 Pipeline 语法和 Docker 代理从 Jenkinsfile 运行作业时 管道失败并显示 Docker 找不到命令 我理解这意味着 1 Docker 未安装 2 Jenkins 未指向正确的 Docker 安装路径 我的情
  • 如何重试基于块的 URL 请求

    我正在使用 iOS7 的新 URL 请求方法获取数据 如下所示 NSMutableURLRequest request NSMutableURLRequest requestWithURL NSURL URLWithString self
  • 预期主表达式在“...”之前,C++ 编译错误

    SO 上有很多类似标题的帖子 但它们似乎是由各种语法错误触发的 而且我还没有看到一致的模式 using namespace std class A public A int a a a int a int main A x 3 A y 0
  • 预加载队列中的 mp3 文件,以避免播放队列中下一个文件时出现任何延迟

    我正在编写一个脚本 其中我正在播放多个 mp3 并且每个文件都在队列中 播放下一个 mp3 文件会出现轻微延迟 因为缓冲 加载文件需要时间 我如何缓冲队列中的下一个 mp3 文件 以便所有文件顺利运行而没有任何延迟 getData 1 fu
  • C++:你会选择 boost::date_time 还是 icu::date/time 库?

    我的应用程序需要自定义时间和日期设置功能 我检查了 ICU 和 boost date time 库 从完整性的角度来看 两者似乎都满足我的要求 我想知道两者之间是否有任何偏好 依据是什么 哪一个会在表现上得分 如果没有有关您的特定用例和环境
  • 如何在新窗口中获取dom元素?

    JavaScript 中的一个简单任务是打开一个新窗口并在其中写入 但我需要在一个dom元素中写入一个带有ID的div var novoForm window open somform html wFormx width 800 heigh
  • Windows 8 - 低延迟音频

    我正在考虑为即将推出的 Windows 8 开发一个应用程序 该应用程序需要低延迟音频录制和播放 我正在尝试找出操作系统是否支持这一点 而不是其他平台 http code google com p android issues detail
  • 替换 Apache POI XWPF 中的文本

    我刚刚发现 Apache POI 库对于使用 Java 编辑 Word 文件非常有用 具体来说 我想编辑一个DOCX使用 Apache POI 的 XWPF 类的文件 我发现没有合适的方法 文档可以执行此操作 有人可以分步骤解释一下如何替换
  • 上传大文件nginx + uwsgi

    堆栈 flask 0 10 uwsgi 1 4 5 nginx 1 2 3 我可以通过我的应用程序上传小文件 CONTENT LENGTH 无效 太大 跳过 nginx 日志没有显示任何有用的内容 我尝试了以下操作 但没有成功 nginx配
  • 如何在 Rust 中包装对使用 VarArgs 的 FFI 函数的调用?

    mexPrintf 就像printf 接受参数的可变参数列表 但我不知道用 Rust 包装它的最佳方法是什么 有一个可变泛型的 RFC https github com rust lang rfcs issues 376 但是今天我们能做什
  • 无法在单例对象中找到隐式值

    我有这个代码 trait Context implicit val e Encoder trait Encoder def write Unit println Test trait AsyncEncoders this Context g
  • getInstance() 不适用于实时数据库中除 us-central1 之外的其他位置

    我正在尝试将用户凭据保存到 Firebase 实时数据库 但是 当我执行该程序时 数据库没有更新 我已正确配置 Firebase 设置 因为身份验证和存储 均为 Firebase 正在运行 build gradle dependencies
  • 如何设置 UWP 应用的默认语言?

    我有2种语言 en US 和 ru Ru 当我将默认语言设置为 ru RU 时 出现错误 PRI257 0xdef00522 找到语言 ru ru en us 的资源 但未找到默认语言的资源 ru RU 改变 默认语言或使用默认语言限定资源
  • 如何在 .proto 文件中处理带有协议缓冲区的通用类型对象?

    我花了一些时间寻找一些替代方法来处理通用对象 我看到了与我类似的问题 但没有我想象的那么具体 协议缓冲区有多种我可以使用的标量类型 但它们大多是原始的 我希望我的消息是灵活的 并且能够有一个作为某种列表的字段 假设我的 proto 文件如下
  • XAML 页面中的 Bindable 值存在问题

    我有一个保龄球回顾示例代码 其中输入了 3 场比赛并总结在系列列中 我遇到的问题是系列列没有按照我的预期进行更新 显然 我做错了什么 但看不到我做错了什么 以下是支持该应用程序的代码
  • 如何覆盖 nltk 的 pos_tag 分配给文本的 POS 标签?

    我使用 nltk 中的 pos tag 来标记一组 未标记的 技术文档中的文本并获得良好的结果 但它总是将 authenticated 等单词标记为动词 而有时它可以用作形容词 换句话说 仅仅改变标签并不是每次都有效 是否有一个好方法来覆盖
  • 嵌入式阵列文档中的 Morphia Mongodb 更新失败

    我是 Morphia 的新手 正在尝试更新嵌入式文档中的字段 这是当前的结构 class A List b BList class B String field 所以我的结构在 MongoDb 中如下所示 id ObjectId 5bab8
  • Python:多 QQ 绘图

    我是新人 通常来自 R 我想创建一个包含多行的 QQ Plot 我有一个测试版分布式数据集 我想尝试不同的 beta 分布参数并在oneQQ Plot 以便更好地进行比较 如果我尝试下面的代码 每个图都有相同的颜色 并且我得到 3 条 QQ
  • 我可以通过 Reflection 获取私有财产的价值吗?

    它似乎不起作用 ref new ReflectionObject obj if ref gt hasProperty privateProperty print r ref gt getProperty privateProperty 它进