インスタンス化されたオブジェクトを指すキーが関連付けられた配列があります。例えば:
$MyArray = array();
$MyArray['Object_A'] = new Object_A();
$MyArray['Object_B'] = new Object_B();
$MyArray['Object_C'] = new Object_C();
この配列でやりたいことは、それらのオブジェクトへの参照として変数に抽出することです。
extract($MyArray, EXTR_REFS);
ステートメントは機能し、その配列内でそれらのオブジェクトを使用するのと同じように使用できます$Var = new Object();
。
$Object_A->SomeMethod();
ただし、定義した関数でそれらを抽出すると、その関数の外では使用できなくなります。以下の例のように関数内で使用できますが、外部では使用できません。
function ExtractObj(&$Array)
{
extract($Array, EXTR_REFS);
$Object_A->SomeMethod(); // This works.
}
そのため、その関数から抽出された変数を関数の外部から使用できるようにする方法が必要です。
function ExtractObj(&$Array)
{
extract($Array, EXTR_REFS);
}
$Object_A->SomeMethod(); // Not working (Yet).
global
注: 、static
変数修飾子またはメソッドなどを使用しようとしましたが、すべてエラーが発生します。