是否可以在另一个类中声明一个对象?以下代码不断给我一个错误nexpected 'new' (T_NEW)
错误。
Class class1{
public function doSomething(){
$var = 3;
return true;
}
}
Class class2{
public $class1 = new class1();
public function doSomethingElse(){
if($class1->doSomething() == true){
return 10;
}else{
return 13;
}
}
}
//$obj = new class2();
我真的不想通过构造函数传递对象,因为它在其他类中使用,所以我必须多次传递它。有更好的方法吗?
答案 0 :(得分:2)
使用类的构造函数实例化另一个类。
Class class1
{
public function doSomething()
{
$var = 3;
return true;
}
}
Class class2
{
protected $class1 = null;
public function __construct()
{
$this->class1 = new class1();
}
public function doSomethingElse()
{
if ($this->class1->doSomething() == true) {
return 10;
} else {
return 13;
}
}
}
答案 1 :(得分:1)
是的,但你必须把初始化放在构造方法中。
Class class2{
public $class1;
public function __construct() {
$this->class1 = new class1();
}
// ...
}
答案 2 :(得分:1)
您只能初始化标量值和数组,使用构造函数:
class Class2 {
public $class1;
public function __construct() {
$this->class1 = new Class1();
}
...
}