【发布时间】:2015-02-16 09:07:49
【问题描述】:
我想用另一个类的实例作为属性创建一个类。像这样的:
class person
{
var $name;
var $address;
}
class business
{
var $owner = new person();
var $type;
}
这当然行不通,我已经尝试了一些变体。我在 Google 搜索中找到的所有内容都只引用了嵌套类定义 (class a { class b{ } })。
是否可以将一个类实例放在另一个类中?如果没有,是否有合理的解决方法?
【问题讨论】:
-
您实例化您的
person类并将其设置为business类构造函数中的owner属性值 -
但是停止使用
var并使用正确的visibility 关键字......你不是还在使用PHP4吗? -
我和马克贝克在这里,解释为什么你不能使用例如 business::__construct() 来设置 $owner 属性?是在构造中创建 person 的实例还是将其作为参数传递给构造函数?
-
@qrazi - 没有特别的原因。我非常擅长程序 PHP 和客观目标 C#。这是我第一次尝试用 PHP 进行目标编程。所以我正在弄清楚我的局限性是什么。我可能会结合使用提到的所有内容以及 get_class() 函数来禁止尝试将 $owner 字段设置为错误的类型。
-
@Andrew 我认为你不需要 get_class()。如果你在构造函数中实例化,你就知道它是什么类。如果你把它作为一个参数,就像这样的答案,那么输入这个参数是有意义的。