/** * 新しいインスタンスを構築します. * @param Map|array $var 指定された配列またはマッピングでこのマップを初期化します. */ public function __construct($var = null) { if ($var instanceof ArrayMap) { $this->data = $var->data; return; } if ($var instanceof Map) { $this->data = array(); $entryList = $var->entryList(); foreach ($entryList as $entry) { $this->put($entry->getKey(), $entry->getValue()); } return; } if (!isset($var)) { $this->data = array(); } elseif (is_array($var)) { $this->data = $var; } else { throw new \InvalidArgumentException("Argument (" . Values::getType($var) . ") must be array or \\Peach\\Util\\Map"); } }
/** * コンストラクタの第一引数が指定された場合に実行される, * マッピングの初期化処理です. * * @param Map|array $map */ private function initTable(&$map) { if ($map instanceof Map) { $entryList = $map->entryList(); foreach ($entryList as $entry) { $this->put($entry->getKey(), $entry->getValue()); } return; } if (is_array($map)) { foreach ($map as $key => $value) { $this->put($key, $value); } return; } throw new \InvalidArgumentException("Argument (" . Values::getType($map) . ") must be array or \\Peach\\Util\\Map"); }
/** * getType() をテストします. * 以下を確認します. * * - オブジェクト以外の引数については, gettype() と同じ結果になること * - オブジェクトについては, そのオブジェクトのクラス名を返すこと * * @covers Peach\Util\Values::getType */ public function testGetType() { $tests = array(array(123, "integer"), array("asdf", "string"), array(new \stdClass(), "stdClass")); foreach ($tests as $test) { $this->assertSame($test[1], Values::getType($test[0])); } }