![]() |
1
8
在PHP中不能使用内部类。所以你不能在mainClass中声明你的innerClass。因为你不能这么做,所以没有办法访问外部类变量,比如Java。 您可以这样做:
|
![]() |
2
4
内部类访问外部类的唯一方法是将外部实例传递给内部类的构造函数,并将其保存在实例变量中。 |
![]() |
3
4
我个人从未见过 班 以前在另一个类的方法中定义的,所以如果它确实有效,我会非常惊讶。(我更惊讶于你为什么想要/需要这个,但无论如何…) 构造当前(外部)对象时,只需将其传递给内部对象。
|
![]() |
4
3
不,内部类不在PHP中。 “该功能已经在其他语言中可用,但问题是PHP中是否需要它。简短的答案是否定的。对于PHP执行模型,它将进一步减慢和膨胀PHP编译。-- http://jacobsantos.com/2006/general/dont-advocate-subclasses/comment-page-1/ |
![]() |
5
1
看来你应该这样做:
但在PHP中似乎不能这样做:
所以从主类中提取您的内部类。 |
![]() |
6
1
否。将对象创建为其他对象的成员时:
据我所知,没有办法访问父元素。创建对象时,必须将对父元素的引用传递给该对象:
尽管类定义可能存在,但它永远不应该存在于函数中。
类定义可以有一个层次结构-它们可以相互扩展。但它是用
我不知道你想做什么,但也许你在找什么
是
扩展类。在这种情况下,可以使用
然而,这与你现在所做的完全不同。 |
![]() |
7
1
让我讲一句重要的话:
在php中,为了使用infix对象访问操作符(
如果您来自另一种语言,并且考虑静态访问,则必须使用正确的运算符,即
现在,如果您坚决反对将“parent”对象传递给子类的构造函数,那么您可以考虑使用单例模式,它允许您从代码中的任何位置静态访问父类的(唯一)实例,包括子对象。 但是说真的,只要把它作为参数传递给构造函数,就像其他人说的那样,不要在函数内部定义类,特别是如果函数本身是另一个类的成员。如果该函数被调用两次,您将得到一个致命的错误。 编辑下面是我所说的一个例子:
然后运行:
|
![]() |
8
0
您正试图用代码静态地调用非静态方法
相反,您需要传递
|
![]() |
9
0
我找到了更多的方法
我也喜欢这个,因为它很整洁。
这里有一个我刚刚创建的对象实例共享类:)
这允许您从任何共享对象运行任何共享的“对象实例”函数 现在,mainClass可以包含/运行它想要的任何innerClass,而innerClass可以运行mainClass实例函数,就像它已经启动的mainClass对象一样。 |
|
simply lemon · python上链表的添加方法 1 年前 |
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
![]() |
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
![]() |
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
![]() |
Andy Votava · 从父类定义调用学生方法 1 年前 |