J'utilise cakephp 1.2 et j'ai un tableau qui semble avoir une valeur de changement même si cette variable n'est pas manipulée. Voici le code qui me cause des problèmes.Les valeurs de tableau changent de façon inattendue
VEUILLEZ NOTER - MISE À JOUR La modification du nom de la variable ne change rien au résultat.
function findCountByString($string, $myArr=array()) {
$main_conditions['or'] = array();
$main_conditions['or']['Article.title LIKE '] = '%'.$string.'%';
$main_conditions['or']['Article.html_content LIKE '] = '%'.$string.'%';
$conditions['and'][] = $main_conditions;
$filter_conditions['or'] = array();
if(count($myArr) > 0) {
# UPDATE NUMBER 2
# if I comment out the below line everything is fine, this makes no sense!!!
$filter_conditions['or']['ArticleEntity.entity_id'] = $myArr;
$conditions['and'][] = $filter_conditions;
}
echo "Start of findCountByString()";
var_dump($myArr);
$test = $this->find('count', array(
'conditions' => $conditions,
'joins' => array('LEFT JOIN `articles_entities` AS ArticleEntity ON `ArticleEntity`.`article_id` = `Article`.`id`'),
'group' => 'Article.id'
));
echo "End of findCountByString()";
var_dump($myArr);
return $test;
}
Je reçois la sortie suivante:
Start of findCountByString()
array(4) {
[0]=>
string(36) "4bdb1d96-c680-4c2c-aae7-104c39d70629"
[1]=>
string(36) "4bdb1d6a-9e38-479d-9ad4-105c39d70629"
[2]=>
string(36) "4bdb1b55-35f0-4d22-ab38-104e39d70629"
[3]=>
&string(36) "4bdb25f4-34d4-46ea-bcb6-104f39d70629"
}
End of findCountByString()
array(4) {
[0]=>
string(36) "4bdb1d96-c680-4c2c-aae7-104c39d70629"
[1]=>
string(36) "4bdb1d6a-9e38-479d-9ad4-105c39d70629"
[2]=>
string(36) "4bdb1b55-35f0-4d22-ab38-104e39d70629"
[3]=>
&string(38) "'4bdb25f4-34d4-46ea-bcb6-104f39d70629'"
}
L'ont changé la valeur dans mon tableau, et je ne sais pas pourquoi?
Des suggestions?
Soit il y a une référence à '$ filters' quelque part qui est modifiée dans l'appel' find', soit le comportement de la fonction 'pr()' change. Pouvez-vous montrer d'où proviennent les '$ filters ', jusqu'à la source? Que se passe-t-il si vous copiez '$ filters' avec un autre nom de variable et que vous faites le même test? –
J'ai ajouté des notes supplémentaires, changer le nom de la variable ne fait aucune différence – Lizard
'$ filters' (Maintenant' $ myArr') est un tableau passé à cette fonction – Lizard