array_map pas de travail dans les classes
Je suis en train de créer une classe permettant de gérer des tableaux, mais je n'arrive pas à obtenir array_map()
travailler dans ce domaine.
<?php
//Create the test array
$array = array(1,2,3,4,5,6,7,8,9,10);
//create the test class
class test {
//variable to save array inside class
public $classarray;
//function to call array_map function with the given array
public function adding($data) {
$this->classarray = array_map($this->dash(), $data);
}
//dash function to add a - to both sides of the number of the input array
public function dash($item) {
$item2 = '-' . $item . '-';
return $item2;
}
}
//dumps start array
var_dump($array);
//adds line
echo '<br />';
//creates class object
$test = new test();
//classes function adding
$test->adding($array);
//should output the array with values -1-,-2-,-3-,-4-...
var_dump($test->classarray);
Ce sorties
array(10) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) [7]=> int(8) [8]=> int(9) [9]=> int(10) }
Warning: Missing argument 1 for test::dash(), called in D:\xampp\htdocs\trainingdvd\arraytesting.php on line 11 and defined in D:\xampp\htdocs\trainingdvd\arraytesting.php on line 15
Warning: array_map() expects parameter 1 to be a valid callback, function '--' not found or invalid function name in D:\xampp\htdocs\trainingdvd\arraytesting.php on line 11 NULL
Ce que je fais mal ou n'cette fonction tout simplement pas travailler à l'intérieur des classes?
- double possible de en Passant méthode de l'objet à array_map()
Vous devez vous connecter pour publier un commentaire.
Vous spécifiez
dash
comme le rappel dans le mauvais sens.Cela ne fonctionne pas:
Ce n':
Lire les différentes formes de rappel peut prendre ici.
array_map(function($item) { return $this->dash($item, 'additional argument'); }, $data)
Bonjour Vous pouvez utiliser Comme celui-ci
array_map($this->dash(), $data)
appels$this->dash()
avec 0 arguments et utilise la valeur de retour comme le rappel de la fonction à appliquer à chaque membre du groupe. Vous souhaitezarray_map(array($this,'dash'), $data)
à la place.Elle doit lire
La
array
-chose, c'est le Fonction PHP pour un objet de la méthode d'instance. Des rappels réguliers fonctions sont définies comme de simples chaînes de caractères contenant le nom de la fonction ('functionName'
), tandis que les méthodes statiques sont définis commearray('ClassName, 'methodName')
ou comme une chaîne de caractères comme ça:'ClassName::methodName'
(cela fonctionne comme PHP 5.2.3).