method_存在于父类php中

2024-05-11

我正在尝试使用 php 函数 method_exists,但我需要检查该方法是否存在于对象的父类中。

so:

class Parent
{
    public function myFunction()
    {
        /* ... */
    }
}

class Child extends Parent
{
    /* ... */
}

$myChild = new Child();

if (method_exists($myChild, 'myFunction'))
{
    /* ... */
}

if (method_exists(Parent, 'myFunction'))
{
    /* ... */
}

if (is_callable(array('Parent', 'myFunction'))
{
    /* ... */
}

但以上都不起作用。我不知道接下来要尝试什么。

谢谢你的帮助!


在这种情况下,子类必须扩展父类

class Parent
{
   public function hello()
   {

   }
}

class Child extends Parent
{

}

$child = new Child();

if(method_exists($child,"hello"))
{
    $child->hello();
}

Update 我相信这与 method_exists 具有相同的效果。

function parent_method_exists($object,$method)
{
    foreach(class_parents($object) as $parent)
    {
        if(method_exists($parent,$method))
        {
           return true;
        }
    }
    return false;
}

if(method_exists($child,"hello") || parent_method_exists($object,"hello"))
{
    $child->hello();
}

刚刚更新自Wrikken's post

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

method_存在于父类php中 的相关文章

  • Laravel 5 Eloquent 在多个级别上将关系附加到 JSON

    因此 在模型中包含关系非常容易 例如 class User extends Model protected with roles class Role extends Model protected with permissions 当有对
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已
  • 加载视图 - codeigniter 错误

    我是 codeigniter 的新手 我正在做一个菜单 所以我将所有链接不放在同一个主文件中 以免一直重复 我的代码是 在main php中 main agregar gt Agregar span a href Modificar a s
  • yii2 更新后返回上一页

    更新记录后如何将用户重定向到上一页 这是典型的场景 用户在索引页面中过滤结果或对记录进行分页 然后找到想要编辑的记录并单击编辑按钮 他们更新该记录的数据 一旦单击 更新 按钮 他们将被重定向到索引视图 但具有先前选择的过滤器 页面 更新后我
  • PHP SimpleXML,如何设置属性?

    如果你有类似的东西
  • 从 PHP 访问 JavaScript 变量

    我需要访问一个JavaScript变量与PHP 这是我当前正在尝试的代码的精简版本 该版本不起作用 我对 JavaScript 和 PHP 都是新手 所以我非常感谢任何建议 UPDATE 好吧 我想我过于简化了 我想做的是创建一个表单 提交
  • 在应用程序上按下类似按钮时自动刷新时间线页面?

    在时间轴发布到页面上之前 当用户在页面上按下 点赞 按钮时 页面会自行刷新 现在 启用时间线后 如果您访问应用程序并按右上角的类似按钮 页面不会自行刷新 并且应用程序不会识别用户 喜欢 该页面 当用户按下 喜欢 按钮时 是否有一种方法或事件
  • 使用 cURL 解释 PHP 中的令牌返回

    我无法解释从该服务器获得的响应 当用户尝试访问我的服务器上的页面时 此 PHP 首先运行以查看它们是否具有有效的令牌 通过我未在此处显示的上一个登录页面 ch curl init searchURL http example com isT
  • Node + now.js + 模型-视图-控制-模式

    我正在使用基于 MVC 模式 模板和 PHP 类 的论坛软件 页面如下所示 domain com index php page Test 我想使用 Node 和 now js 在一个页面 domain com index php page
  • 更改 Symfony2 中的默认语言环境

    我正在尝试更改应用程序的默认区域设置 到目前为止我尝试过的事情 将 intl default locale 设置为 et EE 将区域设置设置为 et app config parameters ini 更改了我的捆绑包 boot 方法中描
  • 如何使用 Magento 测试 cron?

    首先我需要了解 Magento cron 是如何工作的 我知道 cron 在 Linux 上如何工作 使用crontab e 我知道我需要设置 Magento 的 cron php 定期运行 但是当我在 magento 配置文件中定义 cr
  • 在php word中将两个徽标对齐在同一行

    我使用 php word 添加了两个徽标 但两个徽标不在同一行 我希望两个徽标位于同一行 如下所示 我的错误在哪里 if file exists logo table gt addRow table gt addCell 20000 arr
  • mysqldump创建空sql文件? [Windows 上的 php 和 mysql]

    我尝试转储数据库 我尝试了指定 mysqldump exe 的完整路径或仅使用 mysqldump 它仍然给我一个 0kb dumpfile sql 细节 编程语言 PHP 数据库 MySql 5 XX 操作系统 服务器 Windows S
  • 扩展 Codeigniter Exceptions 类以添加自定义方法

    我创建了一个新方法来处理 401 apache 错误 我的核心类扩展了 CI 核心类 但是当我调用方法名称时 我收到此消息 致命错误 调用未定义的函数show 401 in G Path application controllers lo
  • Symfony2 Beta3 中不断收到“您请求了一个不存在的服务“test.client””

    我正在尝试设置单元测试 但每当我运行 phpunit c app 时 我都会收到此错误 Symfony Component DependencyInjection Exception ServiceNotFoundException 您请求
  • xampp openssl 调用 openssl_pkey_new() 时出错;

    所以我试图让 openssl 在我的 Windows 安装的 xampp 1 7 3 上工作 它是用 OpenSSL 0 9 8l 构建的 这只是我第二次在 amp 安装上安装 openssl 但第一次进展顺利 这是在同一台机器上的 wam
  • 限制传出 PHP+curl 请求的速率

    有没有办法限制 有延迟 向外部服务器发出 PHP curl 请求的速率 以便每秒只有 n 个请求 PHP 在 Fastcgi 模式下使用 因此无法使用睡眠 是的 有curl 多重处理程序 您可以使用 OOP 方式以 OOP 方式完成此操作这
  • 删除 cookie php

    我正在尝试创建一个带有登录系统的平台 并将用户名和密码存储在cookie中 以使用户即使关闭浏览器然后再次输入也能保持登录状态 我设法保存了cookie 但我不知道如何制作注销按钮 这是代码 function logout body app
  • PDF:在现有 PDF 文件中插入一行文本

    我有一个 PDF 文件 我希望在所有页面 前两页除外 的页脚上添加一行纯文本 不是徽标或类似内容 有谁有一个如何做到这一点的例子 用任何语言 Update 原始 PDF 是用 Scribus 制作的 我可以完全控制它 因此 如果更容易进行查
  • 实现 PHP 单例:静态类属性还是静态方法变量?

    所以 我总是像这样实现一个单例 class Singleton private static instance null public static function getInstance if self instance null se

随机推荐

  • 将 foreach 与 SplFixedArray 结合使用

    看来我无法通过引用迭代 SplFixedArray 中的值 spl new SplFixedArray 10 foreach spl as value value string var dump spl Outputs Fatal erro
  • 启动 jQuery UI 选项卡,没有选项卡处于活动状态且所有面板都隐藏

    我在用着jQuery UI 选项卡 http jqueryui com tabs 在一个项目中 我想知道是否有一种简单的方法可以在文档加载时隐藏所有面板 直到单击选项卡为止 默认情况下 jQuery UI 以激活的选项卡和可见的相应面板开始
  • SQL Not Empty 代替 Not NULL

    我正在使用 postgreSQL 我有一个专栏 NOT NULL 但是 当我想插入带有空字符串的行时 如下所示 它不会给我错误并接受 我如何检查插入值应该是not empty 既不为空也不为空 PS 我的专栏定义为 ads characte
  • Mysql 连接到服务器:用户 root@localhost 的访问被拒绝

    edit9 是否有可能我只是缺少文件夹的一些权限 我真的非常非常感谢更多的建议 edit3 由于这篇文章没有得到足够的回复 而且这绝对是至关重要的 我尽快完成这件事 我重建了我的帖子以显示我认为到目前为止我已经扣除的内容 注意 通过许多不同
  • Tkinter 按钮鼠标右键和左键单击有不同的命令

    我正在用 Python 制作扫雷游戏 并使用 tkinter 库来创建 gui 有没有 绑定到 tkinter 按钮两个命令的方法 一个是右键单击按钮时的命令 另一个是单击左键时的命令 通常 按钮仅设计用于单击 但 tkinter 允许您为
  • C# 中类似图的实现

    所以我有一个对象 我们称之为 Head 它有一个对象列表 C C1 C2 C3 T T1 T2 和 M M1 M2 并且所有这些都是相互关联的 例如 Head gt C1 C2 C3 T1 T2 M1 M2 T1 gt C1 C2 T2 g
  • Firestore——仅获取大型同步集合中已更改的文档

    我已阅读下面的所有问题 但在文档中找不到任何内容来描述如何同步集合和接收only更改集合中的文档 我的同步集合中有超过 500 个文档 使用redux saga firebase 同步集合 https redux saga firebase
  • 消除“集成测试骗局” - 了解协作和合同测试

    我最近看过集成测试是一个骗局 http www infoq com presentations integration tests scam由 J B Rainsberger 撰写 现在正在寻找有关该主题的更多材料 我不得不说 我对我们做错
  • 在各种分辨率下通过百分比宽度将根 div 居中

    我需要通过基于百分比的宽度而不是基于像素的宽度将根 div 居中 container width 80 margin 0px auto 它将容器相对于页面居中 并在 1366 706 分辨率下正常工作 但在 1280 1024 下不起作用
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • 如何使用jsPDF设置图像以适合页面宽度?

    有什么办法可以解决这个问题吗 我尝试以毫米为单位设置宽度和高度 如何将其设置为全角 您可以获取 PDF 文档的宽度和高度 如下所示 var doc new jsPDF p mm a4 var width doc internal pageS
  • 如何在VB.NET中画一条线

    我正在尝试用 VB NET 画一条简单的线 我的代码如下 但是当我运行代码时 只显示表单 没有线 我在这里做错了什么 Public Class Form1 Dim pen As System Drawing Graphics Private
  • 准备编程竞赛的缩写和函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 是否可以动态导入模块?

    我有很多角度组件的导入 看起来我可以编写一个函数来简化导入 我只是不知道怎么做 但这应该很简单 进口样本 import DashboardComponent from app components dashboard dashboard c
  • 在浏览器中打开的 .mhtml 文件中填写输入

    我想对 mhtml 文件运行 e2e 测试 即填写表格 在 mhtml 文件上查看和提取数据效果非常好 但我无法填写任何内容input字段 既不是手动也不是通过木偶操作者 你可以用这个试试 mhtml 文件 https gist githu
  • 如何使用javascript通过类名更改html元素的值

    这是我用来更改 html 元素值的代码 a class classname href Vtech com This text to be chnage a 如何在页面加载瞬间更改此文本 看来你需要添加DOMContentLoaded或者把你
  • 在 Dart 中重写哈希码的好方法是什么?

    我发现自己想要覆盖对象的 hashcode 和 并且我想知道是否有最佳实践来实现依赖于多个属性的 hashcode 并且似乎有一些特定于 Dart 的注意事项 最简单的答案是将所有属性的哈希值异或在一起 这可能还不错 Dart Up 和 R
  • Android 改造参数化@Headers

    我正在使用 OAuth 每次发出请求时都需要将 OAuth 令牌放入标头中 我看到 Header注释 但是有没有办法让它参数化 以便我可以在运行时传入 这是概念 Header Authorization OAuth var api vers
  • 如何捕获生成器抛出的异常并恢复迭代?

    我有一个生成器 它将值的集合传递给方法并生成结果 调用的方法可能会返回异常 发生这种情况时 我希望异常转到调用生成器来处理异常的代码 然后继续循环生成器 为了说明这一点 下面是一个生成器的示例 它将产生1 抛出一个 Exception 然后
  • method_存在于父类php中

    我正在尝试使用 php 函数 method exists 但我需要检查该方法是否存在于对象的父类中 so class Parent public function myFunction class Child extends Parent