メンバー関数に配列を渡す方法はありますか? 私はこのコードを試してみました:PHP:オブジェクトのメンバ関数に配列を渡すには?
class Testing
{
public function set($arr)
{
echo $arr['key'];
}
}
をしかし、私はこのエラーを得た:未定義のインデックス(キー)
メンバー関数に配列を渡す方法はありますか? 私はこのコードを試してみました:PHP:オブジェクトのメンバ関数に配列を渡すには?
class Testing
{
public function set($arr)
{
echo $arr['key'];
}
}
をしかし、私はこのエラーを得た:未定義のインデックス(キー)
あなたはちょうどあなたが行っているかのように、配列を渡すことができます。
問題は、渡した配列にaキーがkey
のメンバーがないことです。
引数シグネチャに引数の前に先にArray
を置くことによって、配列を渡すことを強制できます。
public function set(Array $arr) { ... }
また、isset()
またはarray_key_exists()
で設定された配列のキーのためにNULL
値を持つキーで働く後者を確認することができます。
、あなたの場合は
$o = new Testing;
$array = array('key' => 'Hello World');
$o->set($array);
方法に他の型を渡すようにあなたが(=>それは鍵を持っていない、あなたの配列だけで無効であることを、と思われる、メソッドに配列を渡します「キー」と名付けられた)。
は$ arr ['key']が定義されていますか? –
どこから 'set'メソッドを呼び出していますか?あなたが 'key 'のキーを持つ配列を渡すと、うまくいくでしょう.....私は疑問を誤読するかもしれませんか? – ManseUK
渡された配列にインデックス 'key'がありますか? – xdazz