1

以下が PHP で機能しないのはなぜですか?

const 日 = 60*24*3;

次のエラーが表示されます。

解析エラー: 構文エラー、1 行目の予期しない T_CONST

プロパティ配列の値に式を代入することもできません。私は定数値のみを使用していることに注意してください(関数などを呼び出していません)。

class A
{
    public $value = array('days'=>60*24*3);
}

上記は機能しません。

$value = array('days'=>60*24*3);

ただし、ローカル変数に割り当てられている場合は問題なく機能します。

値を割り当てるときに数式をどのように使用しますか?

4

2 に答える 2

1

定数はdefine()関数を使用して定義されます。constはクラス内の予約語です (また、PHP 5.3 まではクラス スコープ外で使用することはできません)。したがって:

define('DAYS', 60*24*3);

うまくいきます。

于 2013-02-12T05:59:02.023 に答える
0

定数の定義は正常に機能しますが、グローバル スコープが変更されます。これを行うよりカプセル化された方法は、コンストラクターでプロパティを設定することです。

<?php

class Foo {

    private $duration;

    public function __construct()
    {
        $this->duration = 60 * 60 * 24 * 3;
    }
}
于 2015-03-14T23:03:02.203 に答える