PHP 如何获取带有类和名称空间路径的方法名称作为字符串?

2024-01-10

我真的很讨厌写这个问题,因为我是一种“研究人员”,而且,我总是能找到我正在寻找的东西......但这一个让我很烦恼,我在任何地方都找不到答案...所以,事情是这样的:

正如标题所示,我需要获取一个方法名称,其中尾随类和命名空间路径作为字符串。我的意思是这样的:"System\Language\Text::loadLanguageCache"。 众所周知,您可以通过键入来获取类名(具有完整的命名空间路径),即:Text::class它返回"System\Language\Text",但是有没有办法得到这个方法呢?就像是:Text::loadLanguageCache::function获取字符串:"System\Language\Text::loadLanguageCache"?

Edit:

我想我应该进一步解释一下......我知道魔法常数__METHOD__但问题是它有效在被调用的方法内部我需要这个“方法之外”。 以此为例:

//in System\Helpers
function someFunction()
{ return __METHOD__; }

如果我调用我将得到的函数(让我们假设该方法位于System\Helpers班级) -"System\Helpers::someFunction"。但我想要的是这样的:

//in System\Helpers
function someFunction()
{ //some code... whatever }

// somewhere not in System\Helpers
function otherFunction()
{
    $thatFunctionName = Helpers::someFunction::method //That imaginary thing I want

    $thatClassName = Helpers::class; //this returns "System\Helpers"
}

我希望这能澄清我的问题:)


您必须使用魔法常数,您可以在以下位置阅读更多信息魔法常数 http://php.net/manual/en/language.constants.predefined.php在 php.net 中

__METHOD__

在课堂之外你必须使用反射 https://www.php.net/manual/en/book.reflection.php正如所解释的反射类 https://www.php.net/manual/en/reflectionclass.getmethods.php文档:

<?php
$class = new ReflectionClass('ReflectionClass');
$method = $class->getMethod('getMethod');
var_dump($method);
?>;

Returns:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(9) "getMethod"
  ["class"]=>
  string(15) "ReflectionClass"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 如何获取带有类和名称空间路径的方法名称作为字符串? 的相关文章

  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • Grep 模式匹配用双引号括起来的小写字符串

    我在 grep 方面遇到了一些问题 我似乎无法弄清楚 我试图在一组源文件中搜索用双引号 C 字符串 括起来的小写单词的所有实例 使用 bash 和 gnu grep grep e a z cpp 没有给我任何匹配项 而 grep e a z
  • 如何在xampp中启用zip.dll

    你好 我正在使用 Windows 版 xampp 我想运行 https github com johmue mysql workbench schema exporter 导出我的架构 我在 mysql 工作台中创建架构并保存它 当我运行程
  • 在 WooCommerce 中检查购物车中的多个产品 ID

    我使用以下代码来检查产品 ID 是否在购物车中 如果是 则添加额外的结帐字段 add action woocommerce after order notes conditional checkout field function cond
  • 防止重复数据输入mysql数据库

    我试图让我的电子邮件订阅服务拒绝数据库中已存在的电子邮件 这样用户就不会订阅同一封电子邮件两次 这就是我所拥有的 但它不起作用 有什么想法吗
  • 如何区分两个同名的多选列表

    对于我正在构建的系统 我需要查看第一个列表中出现了哪些选项 通过 POST 请求 以及第二个列表中出现了哪些选项
  • Pandas - 修改每个单元格中的字符串值

    我有一个 pandas 数据框 我需要修改给定字符串列中的所有值 每列包含相同长度的字符串值 用户提供他们想要为每个值替换的索引 例如 1 3 和重置价值 AAA 这会将值 1 到 3 中的字符串替换为值AAA 我怎样才能使用applyma
  • 从存储库获取时,Doctrine 如何在不调用 __construct 方法的情况下创建实体?

    我在构造函数中编写了下一个代码 public function construct die creating entity 当我创建实体实例时new运算符如 entity new Entity 我看到creating entity text
  • 数组到命名变量

    我该如何服用 userarray 这是一个数组 我知道它包含 3 个值 并将它们放入 3 个单独的变量中 而不是循环遍历 那里隔着 commas 所以爆炸会在某个地方发生 Say userfield1 userfield2 userfiel
  • CodeIgniter 控制器构造函数

    我对 codeigniter 很陌生 我想知道控制器中构造函数的含义是什么 我在 codeigniter 教程中看到以下代码 class upload extends CI Controller function construct par
  • 当 C# 位于同一包含类中时,为什么以及如何允许访问类本身之外的私有变量?

    我不知道这个问题是否具有足够的描述性 但是这种行为为什么以及如何存在 public class Layer public string Name get set private IEnumerable children public IEn
  • PHP-向某些浏览器显示消息

    我已经搜索过这个 我发现的一切都超出了我的需要 我以前用 JavaScript 做过这个 但我真的更喜欢使用 PHP 我将如何根据访问者使用的浏览器向他们显示消息 Example IE 用户会看到 您正在使用 Internet Explor
  • 如何使用 PHP 通过 JSON 发送 HTML 元素?

    以下功能 try query this gt pdo gt prepare SELECT FROM bookings WHERE TourID AND dTourDate and Status NOT LIKE Cancelled quer
  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • C# 使文本框中的一组字符表现得像一个字符

    基本上 我有这样的关键字sin and cos 在文本框中 我希望它的行为像单个字符 当我在下面提到整个字符串时 它指的是字符组 例如 sin Using sin 举个例子 如果插入符号位于此位置 在s 如果你按下del 它将删除整个字符串
  • MySQL LAST_INSERT_ID() 和 FOUND_ROWS()

    当 PHP 脚本每秒有数百个查询时会发生什么 它会影响这些函数吗 是否保证它们会返回当前脚本中最后一个插入语句中最后插入的 id 它会返回当前脚本中最后一次选择的行数吗 如果同时从另一个脚本进行新的插入或选择 在 FOUND ROWS 的情
  • Laravel 5:在控制台内核的 Schedule() 函数中使用 Cache:: 或 DB::

    我正在尝试以不同的用户配置的时间间隔在 Laravel 5 中运行 Artisan 控制台命令 我已经构建了控制台命令 并拥有一个包含 运行频率 配置值的数据库 具有 Eloquent 模型 内schedule 的函数App Console
  • 使用 Laravel Socialite 登录 facebook

    然而 我是 Laravel 的新手 我正在遵循以下教程http www codeanchor net blog complete laravel socialite tutorial http www codeanchor net blog
  • 在 JAX-WS 中使用安全性的最佳实践是什么

    这是场景 我有一些需要保护的 Web 服务 JAX WS 目前 为了身份验证需求 我提供了额外的 SecurityWService 它为授权用户提供了一些需要在请求其他服务时描述的 userid 和 sessionid 使用一些java安全
  • C# 模式匹配

    我对 C 有点陌生 我正在寻找一个字符串匹配模式来执行以下操作 我有一个像这样的字符串 该书将在 唐宁街 11 号接待处 并将由主要医疗保健人员参加 我需要创建一个 span 标签来使用 startIndex 和 length 突出显示一些

随机推荐

  • 将 VS2010 类图导出到 Visio

    我正在使用 VS2010 创建类图 有什么方法可以导入 VS2010 生成的类图以导入到 MS Visio 中吗 右键单击 Visual Studio 中的类图 然后选择 将图导出为图像 Choose 增强型图元文件格式 emf Visio
  • Spring Integration 中的 REST 端点使消息通道成为多线程

    我有一个非常简单的 Spring Boot 应用程序 它提供了几个静态端点 这应该驱动将 sftp 文件上传到 sftp 服务器 我的要求是 如果有多个文件 则文件应该排队 我希望通过 sftp spring 集成工作流程的默认行为来实现这
  • 使用 DOMXPath 保留

    标签内的换行符?

    我目前正在使用 PHP 和DOMXPath获取所有的内容 p 网页的元素 p
  • 如何过滤 SCons Glob 结果?

    我有时想从 SCons 的 Glob 结果中排除某些源文件 通常是因为我想用不同的选项编译该源文件 像这样的事情 objs env Object Glob cc objs env Object SpeciallyTreatedFile cc
  • 如何在不更改图像的情况下更新ALAsset的exif?

    I use setImageData metadata completionBlock of ALAsset更新资产的 exif 元数据 我只想更新元数据 但此方法需要imageData作为第一个参数 我使用下面的代码来生成imageDat
  • jQuery.event.props 未定义

    我在用着jquery event move https github com stephband jquery event move在触摸设备上创建移动事件 该脚本在第 580 行抛出错误 570 Make jQuery copy touc
  • 地理定位在设备 ionic3 中不起作用

    我正在从事 ionic 3 基于位置的工作 我无法在这里获取当前位置的纬度和经度 我提到了我的可用代码 它在浏览器级别工作正常 但在移动设备中无法工作 code ionic cordova plugin add cordova plugin
  • PIMPL 习惯用法真的在实践中使用吗?

    我正在看书 卓越的 C Herb Sutter 所著 在那本书中我了解了 PIMPL 习惯用法 基本上 这个想法是创建一个结构private的对象class并将它们动态分配给减少编译时间 并且还以更好的方式隐藏私有实现 例如 class X
  • 如何防止 json_encode() 删除含有无效字符的字符串

    有没有办法保留json encode 从返回null对于包含无效 非 UTF 8 字符的字符串 在复杂的系统中进行调试可能会很痛苦 实际看到无效字符或者至少将其省略会更合适 就目前情况而言 json encode 会默默地丢弃整个字符串 示
  • Ionic 2:Cordova 不可用。确保包含 cordova.js 或在设备/模拟器中运行(在模拟器中运行)

    我刚刚设置了我的第一个 ionic 2 应用程序 我相当广泛地使用了 ionic 1 我正在尝试使用离子原生相机 http ionicframework com docs v2 native camerapreview 预览插件 设置非常简
  • 将 Maven 项目转换为 Eclipse 的动态 Web 项目

    使用 Maven 创建一个 Web 项目 mvn archetype generate DgroupId com trial DartifactId message DarchetypeArtifactId maven archetype
  • 如何接收短信并根据短信内容拨打电话提醒某人?

    因此 我尝试接收传入的短信 并根据短信的内容拨打带有特定录音的电话 例如 我有一个带调制解调器的门传感器 可以在门打开或关闭时向我的 twilio 发送文本 如果 Twilio 收到 门已打开 文本 则 twilio 将拨打我的手机并播放显
  • 如何创建所有数字组合的n维数组?

    我想创建一个函数AllCombnations d maxValue 这将创建一个包含从 0 到 的所有数字组合的 d 维数组maxValue 例如 在 3D 空间中创建所有数字组合 从 0 到maxValue可能是这样的 for int i
  • 挽救模块内特定类型的所有错误

    我有一个模块 在其中执行项目的所有加密 解密任务 我想抓住任何OpenSSL Cipher CipherError该模块中发生的异常以便我可以处理它们 是否可以做类似的事情 rescue from OpenSSL Cipher Cipher
  • Symfony 4 Composer 脚本

    我刚刚安装了 Symfony 4 项目并在中找到了此部分composer json scripts auto scripts cache clear symfony cmd assets install PUBLIC DIR symfony
  • 如何获得没有标签的地图?

    我想要一张有路网的地图 我只需要一张图片 但没有标签 地图上的文字 我尝试从 Google API 获取这样的地图并想 element geometry works 但是 例如 依然充满文字 如何获取没有文字标签的路网图 静态图片也可以 任
  • 如何打开两个Javafx窗口?

    我正在使用 javafx 想在按钮的 setOnAction 中编写代码来关闭 javafx1 类并运行 javafx2 类 但我看到错误 应用程序启动不得被调用多次 我怎样才能解决这个问题 This code is in the clas
  • 这段 JavaScript 代码是什么意思?

    var myval function 我不明白 function 含义甚至其他代码 你所拥有的是 自调用匿名函数 您首先通过在函数本身周围添加括号来创建函数表达式 只是为了写 function 在这种情况下不起作用 因为这将定义一个函数声明
  • Magento 扩展 404 错误

    我很难过 我有一个自定义扩展 可以在 Mac Leopard 本地完美运行 但是在将实时推送到主机 Centos Linux 后 当我尝试调用前端路由器时 出现 Magento 404 错误 例如这个网址 domain shop index
  • PHP 如何获取带有类和名称空间路径的方法名称作为字符串?

    我真的很讨厌写这个问题 因为我是一种 研究人员 而且 我总是能找到我正在寻找的东西 但这一个让我很烦恼 我在任何地方都找不到答案 所以 事情是这样的 正如标题所示 我需要获取一个方法名称 其中尾随类和命名空间路径作为字符串 我的意思是这样的