4

オブジェクトを作成するときにオブジェクト フィールドを取得するための短い表記法が PHP にあるかどうか疑問に思っています。

たとえば、Java では、フィールドの 1 つを取得するために、新しく作成されたオブジェクトを変数に入れる必要はありません。例:

public class NewClass {
    public int testNum = 5;
}

今、testNum新しく作成されたオブジェクトでフィールドを取得するには、次のことを行う必要があります。

int num = (new NewClass()).testNum;

PHPでの同様のケースでは、これを行う必要があります:

$obj = new NewClass();
$num = $obj->testNum;

PHPで1つのステートメントでそれを行う方法はありますか? 注: クラスを編集することはできません。

4

3 に答える 3

2

静的プロパティまたは定数のいずれかを探している可能性があります

public class NewClass {
  const NUM = 5;
  public static $num = 5;
}
$num = NewClass::NUM;
$num = NewClass::$num;

オブジェクト メンバーが本当に必要な場合は、いいえ、PHP は現在これをサポートしていませんが、次の 5.4 リリースで予定されています。

于 2011-06-30T09:12:22.937 に答える
2

クラスでコンストラクターを呼び出すラッパー作成関数を作成すると、次のように簡単に実行できます。

$num = NewClass::Create()->testNum;
于 2011-06-30T09:12:42.590 に答える
1

関数/メソッド呼び出しでのみ実行できます。
new関数ではなく、言語構造です。

于 2011-06-30T09:11:37.640 に答える