8.5.18 map
object Set::map ($class = 'stdClass', $tmp = 'stdClass')
Cette méthode mappe le contenu de l'objet Set vers une hiérarchie d'objets, tout en gardant les clés numériques dans un tableau d'objets.
Pour faire simple, la fonction map transforme les éléments d'un tableau en des objets de classe initialisés. Par défaut, il transforme un tableau en un objet stdClass, cependant vous pouvez mapper des valeurs dans n'importe quel type de classe. Exemple: Set::map($array_of_values, 'nameOfYourClass');
$data = array( array( "IndexedPage" => array( "id" => 1, "url" => 'http://blah.com/', 'hash' => '68a9f053b19526d08e36c6a9ad150737933816a5', 'get_vars' => '', 'redirect' => '', 'created' => "1195055503", 'updated' => "1195055503", ) ), array( "IndexedPage" => array( "id" => 2, "url" => 'http://blah.com/', 'hash' => '68a9f053b19526d08e36c6a9ad150737933816a5', 'get_vars' => '', 'redirect' => '', 'created' => "1195055503", 'updated' => "1195055503", ), ) ); $mapped = Set::map($data); /* $mapped ressemble maintenant à cela: Array ( [0] => stdClass Object ( [_name_] => IndexedPage [id] => 1 [url] => http://blah.com/ [hash] => 68a9f053b19526d08e36c6a9ad150737933816a5 [get_vars] => [redirect] => [created] => 1195055503 [updated] => 1195055503 ) [1] => stdClass Object ( [_name_] => IndexedPage [id] => 2 [url] => http://blah.com/ [hash] => 68a9f053b19526d08e36c6a9ad150737933816a5 [get_vars] => [redirect] => [created] => 1195055503 [updated] => 1195055503 ) ) */
$data = array(array("IndexedPage" => array("id" => 1,"url" => 'http://blah.com/','hash' => '68a9f053b19526d08e36c6a9ad150737933816a5','get_vars' => '','redirect' => '','created' => "1195055503",'updated' => "1195055503",)),array("IndexedPage" => array("id" => 2,"url" => 'http://blah.com/','hash' => '68a9f053b19526d08e36c6a9ad150737933816a5','get_vars' => '','redirect' => '','created' => "1195055503",'updated' => "1195055503",),));$mapped = Set::map($data);/* $mapped ressemble maintenant à cela:Array([0] => stdClass Object([_name_] => IndexedPage[id] => 1[url] => http://blah.com/[hash] => 68a9f053b19526d08e36c6a9ad150737933816a5[get_vars] =>[redirect] =>[created] => 1195055503[updated] => 1195055503)[1] => stdClass Object([_name_] => IndexedPage[id] => 2[url] => http://blah.com/[hash] => 68a9f053b19526d08e36c6a9ad150737933816a5[get_vars] =>[redirect] =>[created] => 1195055503[updated] => 1195055503))*/
Set::map() utilisé avec une classe personnalisée comme second paramètre:
class MyClass {
function sayHi() {
echo 'Hi!';
}
}
$mapped = Set::map($data, 'MyClass');
//Maintenant, vous pouvez accéder à toutes les propriétés comme dans l'exemple ci-dessus,
//mais vous pouvez aussi appeler la méthode MyClass.
$mapped->[0]->sayHi();
class MyClass {function sayHi() {echo 'Hi!';}}$mapped = Set::map($data, 'MyClass');//Maintenant, vous pouvez accéder à toutes les propriétés comme dans l'exemple ci-dessus,//mais vous pouvez aussi appeler la méthode MyClass.$mapped->[0]->sayHi();


























