2011-10-11 21 views
0

メンバー関数に配列を渡す方法はありますか? 私はこのコードを試してみました:PHP:オブジェクトのメンバ関数に配列を渡すには?

class Testing 
{ 
    public function set($arr) 
    { 
     echo $arr['key']; 
    } 
} 

をしかし、私はこのエラーを得た:未定義のインデックス(キー)

+0

は$ arr ['key']が定義されていますか? –

+0

どこから 'set'メソッドを呼び出していますか?あなたが 'key 'のキーを持つ配列を渡すと、うまくいくでしょう.....私は疑問を誤読するかもしれませんか? – ManseUK

+0

渡された配列にインデックス 'key'がありますか? – xdazz

答えて

4

あなたはちょうどあなたが行っているかのように、配列を渡すことができます。

問題は、渡した配列にaキーがkeyのメンバーがないことです。

引数シグネチャに引数の前に先にArrayを置くことによって、配列を渡すことを強制できます。

public function set(Array $arr) { ... } 

また、isset()またはarray_key_exists()で設定された配列のキーのためにNULL値を持つキーで働く後者を確認することができます。

1

、あなたの場合は

$o = new Testing; 
$array = array('key' => 'Hello World'); 
$o->set($array); 

方法に他の型を渡すようにあなたが(=>それは鍵を持っていない、あなたの配列だけで無効であることを、と思われる、メソッドに配列を渡します「キー」と名付けられた)。

関連する問題