Page 1 sur 1

Is_string -> Tableau

Posté : 07 mars 2010, 19:53
par Dr@ke
Vue que les valeurs des posts des formulaires ne sont pas obligatoirement de type String.
Je cherchais une fonction qui permettait de tester facilement et simplement tous les éléments d'un tableau.
N'ayant pas trouvé ce que je cherchais, je propose cette fonction si cela peut aussi intéresser d'autres personnes.
// Vérifier si toutes les valeurs d'un tableau sont de type String
function no_string($table) {
    foreach($table as $index => $valeur) {
        if (!is_string($valeur)) return true;
    }
    return false;
}

// Exemple avec $_POST (mais peut être utilisé avec d"autres tableaux du même type)
if (!empty($_POST) && !no_string($_POST)) {
    // traiter le formulaire
}
Évidemment s'il existe un moyen encore plus simple et pas moins performant, je suis preneur.

Re: Is_string -> Tableau

Posté : 08 mars 2010, 00:52
par stealth35
hello, tu pourrais faire avec array_map ou array_filter

avec array_map tester si une valeur est a "false" (le plus simple)
in_array(false, array_map('is_string', $_POST));
sinon on pourrais avec array_filter
count($_POST) === count(array_filter($_POST, 'is_string'));

Re: Is_string -> Tableau

Posté : 08 mars 2010, 00:58
par Dr@ke
Pas bête le array_map() surtout...
J'avais regardé array_map() mais j'ai vite laissé tomber, je n'avais pas pensé a l'utiliser avec in_array().
Et je n'étais pas certain de son comportement avec une fonction qui retourne true ou false...

Re: Is_string -> Tableau

Posté : 08 mars 2010, 19:20
par niuxe
@dr@ke : Je fais juste un petit passage pour dire que normalement le break est de trop vu qu'il y a le return, non ?

@steakth : bien vu :)

en POO, je verrai bien pear::QuickForm . ^^

Re: Is_string -> Tableau

Posté : 08 mars 2010, 22:29
par stealth35
en POO, je verrai bien pear::QuickForm . ^^
ca commence a dater maintenant c'est QuickForm2 mais encore en version alpha, je pencherai pour un Zend_Form (mais un peu chiant de prendre toute la lib juste pour ca...) :wink:

Re: Is_string -> Tableau

Posté : 09 mars 2010, 21:34
par Dr@ke
@dr@ke : Je fais juste un petit passage pour dire que normalement le break est de trop vu qu'il y a le return, non ?
Si, exact -> Edité
en POO, je verrai bien pear::QuickForm . ^^
J'avais dis encore plus simple et pas moins performant :langue:

(Puis cela peut fonctionner pour autre chose qu'un Form)

Re: Is_string -> Tableau

Posté : 11 mars 2010, 17:30
par Dr@ke
Autre avantage qui est logique oui mais qui apporte un plus que l'on ne pense pas forcément au départ:
Exemple:
$var = '';
var_dump(is_string($var));
// retourne false
Ainsi la fonction vérifie aussi si les valeurs du tableau sont vides.
(il faut juste s'assurer que le tableau existe bien)

Avant de traiter un formulaire, c'est top, enfin pour moi :wink: