2

これがPHPで可能かどうかはわかりませんが、これが私がやろうとしていることです。クラスの外部で参照として使用したい静的変数がクラスにあります。

class Foo {

  protected static $bar=123;

  function GetReference() {

    return self::&$bar; // I want to return a reference to the static member variable.
  }

  function Magic() {

    self::$bar = "Magic";
  }
}

$Inst = new Foo;
$Ref = $Inst->GetReference();
print $Ref; // Prints 123
$Inst->DoMagic();
print $Ref; // Prints 'Magic'

誰かがこれがまったく可能かどうか、または同じ結果を達成するための別の解決策を確認できますか?

  • クラスFooは基本クラスであり、すべての派生物が同じデータにアクセスする必要があるため、変数は静的である必要があります。
  • HTMLはクラス参照データにアクセスする必要がありますが、クラスは変数がいつ設定されるかを知る必要があるため、setterメソッドなしでデータを設定することはできません。

クラスの外で宣言されたグローバルと緊急の解決策としてのいくつかのコーディング分野で常に解決できると思います。

// ありがとう

[編集]
はい、PHP5.3.2を使用しています

4

1 に答える 1

3

PHPのドキュメントは解決策を提供します:参照を返す

<?php
class foo {
    protected $value = 42;

    public function &getValue() {
        return $this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42.
$obj->value = 2;
echo $myValue;
于 2011-02-15T13:39:05.460 に答える