当前位置: 首页 > 面试题库 >

将当前对象($ this)转换为后代类

谭俊
2023-03-14
问题内容

我有一类可能需要将对象更改为更远的一行的后代类。这可能吗?我知道一个选择是返回它的副本,但改用子类,但是最好实际修改当前对象……所以:

class myClass {
  protected $var;

  function myMethod()
  {
    // function which changes the class of this object
    recast(myChildClass); 
  }
}

class myChildClass extends myClass {
}

$obj = new myClass();
$obj->myMethod();
get_class_name($obj); // => myChildClass

问题答案:

如其他答案中所述,您可以使用讨厌的 黑魔法 PECL扩展来做到这一点。

虽然,您真的不想要它。您想在OOP中解决的任何问题都有一种符合OOP的方法。

运行时类型层次结构修改不符合OOP(实际上,有意识地避免了这一点)。有些设计模式应该适合您的需求。

请告诉我们您为什么要这么做,我敢肯定必须有更好的方法来做到这一点;)



 类似资料:
  • 本文向大家介绍将当前时间转换为java.sql.Date对象,包括了将当前时间转换为java.sql.Date对象的使用技巧和注意事项,需要的朋友参考一下 首先,创建一个Calendar类对象。 现在,导入以下软件包。 现在使用Date类并创建对象将属于上述包。将当前时间转换为java.sql.Date对象。 以下是一个示例。 示例 输出结果

  • 问题内容: 我有一个JSON对象,我将其转换为并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。 我正在研究Node V6.9.1 下面是我尝试过的代码,但是当我转换回JSON却无法打开该对象时遇到了。 所以我尝试使用检查方式打印整个对象 如果我尝试像数组一样读取它 我也尝试解析它抛出 我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。 请帮忙.. 问题答

  • 我正试图将下面的json转换成java bean,需要你的帮助 Sort.json 我的豆子看起来像 我的测试课是 我看到的错误是 请建议:

  • 问题内容: 我正在从一个网站获取许多页面的html源代码,我需要将其转换为json对象,并与json文档中的其他元素组合。。我在同一主题上看到了很多问题,但没有一个是有帮助的。 我的代码: 上面的代码提供了unicode类型,但是,当我将输出放入jsonLint时,它给了我无效的json错误。有人可以帮助我了解如何将完整的html转换为json对象吗? 问题答案: 将原始HTML内容转换为JSON

  • 例如:Date值为:“dateCollected”:fri Jul 07 00:00:00 IST 1989, 但它只服用星期五而不是整个日期。

  • 我是Firebase数据库的新手,我正在遵循谷歌的文档从我的数据库中检索数据。 我有这样的结构: 我的应用程序崩溃。 我不明白与谷歌文档的区别。有人能帮帮我吗?我太纠结了! 错误是: