Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP的扩展类中重新定义方法时返回正确的类名_Php_Oop_Class_Object_Syntax - Fatal编程技术网

在PHP的扩展类中重新定义方法时返回正确的类名

在PHP的扩展类中重新定义方法时返回正确的类名,php,oop,class,object,syntax,Php,Oop,Class,Object,Syntax,我期望第一个示例代码产生与第二个相同的结果,但它没有。因此,为了获得正确的类名,我必须在扩展类中重新定义自定义msg方法 我想知道为什么第一个不产生扩展类名,以及为什么在重新定义完全相同的方法时会产生扩展类名 例1 输出 获取类:MyClass 例2 输出 获取类:MyClass\u Mod 我想知道它的机制,所以请不要建议使用get_称为_类。我无法将其用于PHP5.3以下的版本。谢谢您的输入。您只需将$this参数传递给函数即可 get_class($this); 您只需将$this参数传

我期望第一个示例代码产生与第二个相同的结果,但它没有。因此,为了获得正确的类名,我必须在扩展类中重新定义自定义msg方法

我想知道为什么第一个不产生扩展类名,以及为什么在重新定义完全相同的方法时会产生扩展类名

例1

输出

获取类:MyClass

例2

输出

获取类:MyClass\u Mod

我想知道它的机制,所以请不要建议使用get_称为_类。我无法将其用于PHP5.3以下的版本。谢谢您的输入。

您只需将$this参数传递给函数即可

get_class($this);
您只需将$this参数传递给函数

get_class($this);
如果在类中省略get_类的参数,则返回该类的名称

您需要使用$this指定参数。

如果在类中省略get_类的参数,则返回该类的名称


您需要使用$this指定参数。

@Teno:最好阅读您在代码中调用的函数的文档。@Jon我这样做了,实际上它说在类中可以忽略此参数。所以我希望它可以省略。@Teno:也可以阅读返回值部分:@Jon我不明白这意味着什么:返回对象是实例的类的名称。如果对象不是对象,则返回FALSE。如果在类中省略对象,则返回该类的名称。我希望该类的名称是指扩展类。@Teno它基本上是指定义该函数的类。在您的情况下,它是父类MyClass@Teno:阅读您在代码中调用的函数的文档是个好主意。@Jon我读了,实际上它说在类中可以省略此参数。所以我希望它可以省略。@Teno:也可以阅读返回值部分:@Jon我不明白这意味着什么:返回对象是实例的类的名称。如果对象不是对象,则返回FALSE。如果在类中省略对象,则返回该类的名称。我希望该类的名称是指扩展类。@Teno它基本上是指定义该函数的类。在您的例子中,它是父类MyClassName该类的名称是否表示原始类?@Teno它表示定义该函数的类。在你的情况下,是父母class@Rezigned哦,真的。这很让人困惑。那个类的名称是指原始类吗?@Teno它指的是定义该函数的类。在你的情况下,是父母class@Rezigned哦,真的。这很令人困惑。
get_class($this);