1

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

在 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();
4

2 回答 2

1

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

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

如果你想$objs成为 的新实例Student,你应该在你的构造函数中初始化它:

public function __constructor()
{
    $this->objs = new Student();
}
于 2012-10-20T12:17:51.183 回答
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();
于 2012-10-20T12:23:54.087 回答