私はこれで髪を引っ張っています。PHPではかなり新しいですが、これは非常に基本的なもので、どこに問題があるのか わかりません。以下のコード スニペットを例として使用します。
class LG_Activity_Processor {
// Activity Types
const STATUS_DRAFT = 'draft';
const STATUS_PUBLISH = 'publish';
...
private $STATUS_FUTURE = 'future';
define ("STATUS_PRIVATE" , 'private');
変数は実行前に完全に定義されているため、もともと「const」構造を使用するつもりでしたが、その構文は醜い「定義」よりもきれいだと思います。問題は、constの定義でエラーが発生しないことですが、クラスの後半で定数を参照するたびに、次のエラー メッセージが表示されます。
PHP 通知: 未定義の定数 STATUS_PUBLISH の使用 - 'STATUS_PUBLISH' を想定
は?明確にするために、「const」を参照するために使用した構文は次のとおりです。
$core_fields ['post_status'] = STATUS_PUBLISH;
私も試しました:
$core_fields ['post_status'] = $this->STATUS_PUBLISH;
愛がない。それから私は絶望的な状態に入り、最終的に「define」を試みました。呼び出し構文は同じですが、「STATUS_PRIVATE」について上記のように定義構文を変更しました。定義行で次のような致命的なエラーが発生したため、これは非常に価値のあるものになりました。
PHP Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION
私はあきらめた。最後に変数をプライベート変数として定義し (STATUS_FUTURE の例のように)、次のように参照しました。
$core_fields ['post_status'] = $this->STATUS_PUBLISH;
それはあなたが期待しているように機能しますが、正しい方法でだまされたと感じずにはいられません. コード全体を再び作成する方法についてのアイデアはありますか?