2016-05-18 8 views

答えて

0

静的メソッド内で参照されるオブジェクトがないため、これは明らかに不可能です。これは、静的メソッドの全ポイントです。つまり、インスタンス化されたオブジェクトとは独立して使用できることです。

  1. は、あなたが明示的として値を渡すことができます。しかし、このようなオブジェクトを使用せず、あなたは明らかにあなたが選んだあなたの状況に依存して一つの特性$x ...

    は、いくつかの選択肢がありますが、持っていません引数function status($x)の場合、peopleというインスタンス化されたオブジェクトのプロパティにアクセスできます。

  2. クラス内にはstatic constというプロパティを宣言できます。その場合は、明らかに静的クラスのメソッドからアクセスできます。しかし、明らかに初期化できる定数ですが、時間の経過とともにその値を変更することはできません。

  3. このプロパティは、の外部にあるのように設計することができます。はい、これは明らかであり、クラスデザインのポイントを変更します。しかし、あなたはすでにあなたがに走った問題が示すと言うことができる一般的なものにチャンスは、このメソッドは、すべての任意のインスタンス化されたオブジェクトに依存してはならないということです静的メソッド...

を使用しようとするので、そのクラスの設計決定的なものではなく、現在の状態ではそれ自体意味をなさない。あなたはクラスを再設計しなければならないでしょう(あるいはより大きなアーキテクチャかもしれません)。

なぜどうすればメソッドstatus()を静的にしたいですか?

+0

ありがとう、有用な情報、今私はそれが静的な機能を持つことを意味しない知っている。 – Duveral

関連する問題