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 に答える