为什么我们不能在php中创建另一个类的对象作为元素

时间:2012-10-20 12:14:02

标签: php

我在论坛中看到了相同问题的一些答案..但答案仍然没有提供一个明确的想法..

在其他语言中,如C#正在执行。但为什么不用PHP?

检查示例:

class Student
{
    public $name;
    public $age;
    private $number;
}

class ss
{
    public $obj;
    public $objs=new Student();     //generating error

    public function act()
    {
        $obj = new Student();
        $obj->study();
        $obj->studentinfo();
    }
}

$ob = new ss();
$ob->act();

2 个答案:

答案 0 :(得分:1)

根据PHP文档,任何属性值都必须是常量值。

  

这个声明可能包括初始化,但是这个   初始化必须是一个常量值 - 也就是说,它必须能够   在编译时进行评估,不得依赖于运行时   信息以便进行评估。

如果您希望$objs成为Student的新实例,则应在构造函数中初始化它:

public function __constructor()
{
    $this->objs = new Student();
}

答案 1 :(得分:1)

试试此代码

class Student
{
    public $name;
    public $age;
    private $number;
}
class ss
{
    var $obj;
    public function __construct()
    {
        $this->obj = new Student();
        $this->obj->study();
        $this->obj->studentinfo();
    }
}

$ob=new ss();
$ob->act();