1

専門用語を知らずにPHPとOOPを手に入れたので、何をグーグルで検索すればよいかわかりません。

これが PHP で機能しないのはなぜですか?

class Calendar{
    public $derp="lala";
    public $todaysDate=date('Y-m-d',strtotime('2013-04-11'));
}

しかし、これはありますか?

class Calendar{
    public $derp="lala";
    public function __construct() 
    {
        $this->todaysDate=date('Y-m-d',strtotime('2013-04-11'));
    }
}

クラスの最初に日付を宣言することはできませんか? なんで?

4

2 に答える 2

3

PHP.netから

TL;DR 非定数値でプロパティを初期化することはできません。関数は定数値ではありません。

プロパティ

クラスのメンバー変数は「プロパティ」と呼ばれます。「属性」や「フィールド」などの他の用語を使用して参照される場合もありますが、この参照では「プロパティ」を使用します。それらは、キーワード public、protected、または private のいずれかを使用して定義され、その後に通常の変数
宣言が続きます。この宣言には初期化が含まれる場合がありますが、この初期化は定数値である必要があります。つまり、コンパイル時に評価できる必要があり、評価されるために実行時の情報に依存してはなりません。

于 2013-04-11T23:45:31.367 に答える
0

date関数です。関数はメソッドから呼び出されます。$todaysDateさらに、変数に値を与えることは、コンストラクターでより適切です。

于 2013-04-11T23:37:41.687 に答える