Échec concaténation dans une fonction

Fermé
teddol Messages postés 3 Date d'inscription jeudi 16 avril 2015 Statut Membre Dernière intervention 27 décembre 2016 - 10 déc. 2015 à 21:48
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 11 déc. 2015 à 11:55
Hello les fans de PHP,

J'ai une fonction qui me permet d'ajouter des articles dans un panier. Le panier est sauvegardé dans une SESSION dont le contenu est une chaîne. Chaque article ajouté dans cette chaîne est séparé par un séparateur "|".
Le soucis est que lorsque je teste le contenu de ma fonction, le séparateur est bien ajouté à chaque fin d'article. Mais lorsque j'appelle la fonction brute, le séparateur n'est pas ajouté.
Sauriez-vous pourquoi ?

Voici ma fonction:


function BASKET_ADD_PRODUCT($id_product, $id_size, $qty){

$basket_line = explode("|", $_SESSION['basket']);

$new_id_line = sizeof($basket_line)-1;
$string = $new_id_line.";".$id_product.";".$qty.";".$id_size."|"; // | comme séparateur

$_SESSION['basket'] = $_SESSION['basket'].$string;

}
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
11 déc. 2015 à 11:55
Salut,

Je ne vois pas de raison au fait que le séparateur ne soit pas ajouté, celui-ci est bien toujours concaténé dans ta variable de session.

Une solution alternative serait simplement d'utiliser un tableau au lieu de s’embêter avec les séparateurs. Cela devrait simplifier tes traitements, par exemple :
function BASKET_ADD_PRODUCT($id_product, $id_size, $qty) {
    $_SESSION['basket'][] = $id_product . ";" . $qty . ";" . $id_size;
}


Le même principe pourrait être utilisé pour les données id_product, id_size et qty.

Bonne journée,
0