PHP 获取静态方法

2023-11-27

我想通过 var 调用类方法(如下所示):

$var = "read";
$params = array(...); //some parameter
if(/* MyClass has the static method $var */)
{
  echo MyClass::$var($params);
}
elseif (/* MyClass hat a non-static method $var */)
{
  $cl = new MyClass($params);
  echo $cl->$var();
}
else throw new Exception();

我在 php 手册中阅读了如何获取类的函数成员(get_class_methods)。但我总是得到每个成员没有信息,无论其是否静态。

我如何确定方法的上下文?

感谢您的帮助


使用类ReflectionClass:

On Codepad.org: http://codepad.org/VEi5erFw
<?php

class MyClass
{
  public function func1(){}
  public static function func2(){}
}

$reflection = new ReflectionClass('MyClass');
var_dump( $reflection->getMethods(ReflectionMethod::IS_STATIC) );

这将输出所有静态函数。

或者,如果您想确定给定函数是否是静态的,您可以使用ReflectionMethod class:

在 Codepad.org 上:http://codepad.org/2YXE7NJb

<?php

class MyClass
{
  public function func1(){}
  public static function func2(){}
}

$reflection = new ReflectionClass('MyClass');

$func1 = $reflection->getMethod('func1');
$func2 = $reflection->getMethod('func2');

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

PHP 获取静态方法 的相关文章

  • 通过身份验证保护 CodeIgniter 2 应用程序的正确方法是什么?

    I have Ion Auth http benedmunds com ion auth 正确安装并在我的服务器上运行 我也有默认的代码点火器2 新闻 教程在同一个 CI 安装中工作 我只是在玩 并对使用身份验证系统 封闭 或保护整个应用程
  • 点击 %40 变为 %2540

    当单击包含 符号的链接时 该网址给我 40 这就是我想要的 但是一旦我点击它 一秒钟后它就在我点击后变成了 2540 单击是在电子邮件内 然后定向到网站 其中 40 更改为 2540 我怎样才能让它停止变化 它现在得到这样的参数 email
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • 简单的 PHP 回显代码不起作用

    这是我的 html 和 php 脚本 h1 Bob s Auto Parts h1 table width 100 tr tr table 为什么这个输出会出现一个 gt 我希望它是 这有效 仅有的 这是输出 鲍勃的汽车零件 鲍勃
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • Mysqli 更新抛出 Call to a member function bind_param() 错误[重复]

    这个问题在这里已经有答案了 我有一个 70 80 字段表单 需要插入到表中 因此我首先根据表单中的输入名称在数据库中创建了一个表 而不是手动创建一个巨大的插入语句 这是我使用的代码创建 更改表 function createTable ar
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • WordPress 自定义帖子类型未显示在搜索结果中

    我在 WordPress 中遇到自定义帖子类型 测验 和搜索的问题 自定义帖子类型未显示在我的搜索结果页面中 我的搜索结果中仅显示默认的帖子内容 以下是我使用的代码 函数 php函数create posttype register post
  • 我可以在 PHP 会话变量中安全地存储用户名和密码吗?

    我想在 REST api 之上制作一个轻量级的 web 应用程序 用户只需进行一次身份验证 从那时起 所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成 我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之

随机推荐

  • 如何检查解密是否正确?

    我正在开发一个聊天室 为多个用户加密消息 每个用户可能有不同的加密和密钥 密码 因此 用户的密钥不适用于所有消息 返回错误 var message secret message var encrypted CryptoJS AES encr
  • 使用带有导航抽屉的 ViewPager 的操作栏选项卡

    要求 使用带有导航抽屉的 ViewPager 的操作栏选项卡 我可以创建一个导航抽屉示例 单独使用 ViewPager 的操作栏选项卡 但是当我尝试同时使用两者时 我遇到了问题 我可以使用片段创建导航抽屉 并使用片段创建操作栏选项卡 但这两
  • 在 python3 中合并异步迭代

    有没有一个好的方法 或者一个支持良好的库 用于在 python3 中合并异步迭代器 期望的行为与在reactivex中合并可观察量的行为基本相同 也就是说 在正常情况下 如果我合并两个异步迭代器 我希望生成的异步迭代器按时间顺序产生结果 迭
  • WPF 中的 Thread.CurrentPrincipal.Identity.Name 为空

    EDIT 简单的问题是 我怎样才能得到Thread CurrentPrincipal Identity Name让当前用户登录WPF END EDIT 我正在尝试调用一个现有方法 不在任何类型的服务中 只是 POCO 中的一个方法 来检索当
  • Java 开源调查/问卷引擎 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 是否有一个允许问题分支的 Java 开源调查引擎 即问题 1 有 A B 或 C 选项 每个选项都会带您进入一组不同的后续问题 我找到了几个 JSurveyLib 和 Socrate
  • 基于嵌入文档计数的 MongoDB 查询

    假设我有 Order id items 如何过滤商品编号大于5的订单 您无法按嵌入集合的大小进行查询 您需要创建具有集合大小的字段以满足此类需求 mongo db 文档 size 运算符匹配任何数组 具有指定数量的元素 以下示例将匹配 对象
  • 当 ContentControl.Content 更改时开始动画

    我试图在 Button 或 ContentControl 等内容控件更改其内容时触发动画 我最初的想法是这样做
  • 如何在 Spyder 中显示图表

    自 2015 年 11 月起 plotly 开源并可用于 python https plot ly javascript open source announcement 当尝试离线绘制一些图时 这些可以在 iPython Notebook
  • 在代码隐藏中使用资源图像

    我需要动态更改应用于我的按钮之一的背景图像 但不知道如何操作 图像将添加到项目中 并将其 构建操作 设置为 资源 我已经尝试过以下操作 buttonUnits Background new ImageBrush new BitmapImag
  • 我们可以将 Firebase 实时数据库与核心 PHP 一起使用吗?

    我有一个 Android 应用程序 后端代码位于使用 MySql 的核心 PHP 中 有没有办法像我们在 MySql 上执行的方式直接从 API 执行 CRUD 操作 如果它是一个网络应用程序 可以使用 javascript 来完成 但是我
  • 使用 TextInputLayout 时更改 EditText 提示颜色

    我正在使用新的TextInputLayout来自设计库 我能够让它显示并更改浮动标签的颜色 不幸的是实际EditText提示现在始终为白色 我尝试过以编程方式更改 XML 样式中的hintColor 还尝试使用android support
  • 超出纳秒时间戳范围

    我在 Googlespeedsheet 中有一个变量 date hiring 格式如下 16 01 2016 我在Python中导入它 该变量有一个对象类型 我尝试转换为日期时间 from datetime import datetime
  • html或css中指定图像大小的区别

    这个链接非常接近我的问题 但似乎更适用于语法而不是实际渲染的输出 我看到图像的高度和宽度可以在实际的html中定义img标签 事实上我读它的方式should在那里定义 然而 我想知道当实际涉及到图像的显示方式时 什么才是重要的 如果我插入以
  • 分配新块时如何控制“std::deque”的块大小?

    当我们向a中插入一个新元素时std deque 如果现有的块都已满 它可能会分配一个新的块来包含该元素 然而 实现如何控制块大小呢 用户是否可以控制块大小 或者它仅取决于实现的选择 例如4K 还是 8K 这是实现的选定值 无法对其进行控制
  • 在系统分区写入文件

    我正在尝试将我的应用程序生成的文件写入系统分区 由于我无法在应用程序中创建 FileOutputStream 因此我在应用程序的数据目录中创建文件 更正权限 然后将其移动到系统分区 目前 下面的代码错过了 system 的可写重新安装 出于
  • 在命令行中将环境变量传递给java类

    我需要从本地文件中读取一些属性etc myconfig config 文件夹 我需要在命令行中给出这个文件路径 我已经给出了如下所述 但出现错误 显示如下 Error Could not find or load main class te
  • IntentService 不会启动使用 AlarmManager

    我知道对此有很多疑问 但我真的不知道我的错误在哪里 我的服务注册在AndroidManifest xml文件中
  • 无法加载文件或程序集“Oracle.DataAccess”或其依赖项之一。尝试加载格式不正确的程序

    我已在 IIS 7 0 Windows Server 2008 R2 64 位上安装了 Web 应用程序 我指的是 oracle DataAccess dll 当我尝试访问该应用程序时 我收到以下消息 无法加载文件或程序集 Oracle D
  • QT 5.0 QDebug编译错误

    我在使用 QDebug 编译代码时遇到问题 但我确实需要它 include
  • PHP 获取静态方法

    我想通过 var 调用类方法 如下所示 var read params array some parameter if MyClass has the static method var echo MyClass var params el