La manière de voter, variable tableau
J'ai une variable $v qui peuvent être à simple chaîne de caractères ou un tableau de chaînes de caractères
et j'ai un code:
$a = array();
if (is_array($v)) {
$a = $v;
} else {
$a[] = $v;
}
Comment il peut être fait de façon plus élégante? (en d'autres mots, la manière de voter une variable de tableau)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lancer une variable à un tableau à l'aide de:
foreach
ouimplode
sinon, vous allez courir dans les indésirables, les erreurs et les avertissements.est la réponse.
$a = (array) $v;
? Au moins dans le cas des OP cas.Je voudrais écrire votre extrait de code comme ceci (à court et à vous lire et de savoir exactement ce qui se passe):
Vous pouvez également utiliser
settype
:Pour expliciting le type de variable. C'est exactement le même que ce qui se passe avec un transtypage de derrière les coulisses. (Plus utile pour le groupe sage typecasting par exemple, dans les boucles.)
Si vous êtes à la recherche pour convertir un objet à un seul chef d'accusation de tableau, vous pouvez utiliser le code ci-dessous:
Les autres réponses ne fonctionne pas lorsque vous tentez de convertir un objet, il sera tout simplement de convertir les champs de cet objet dans un tableau associatif (à moins que ce que vous essayez de le faire).
Comme d'autres l'ont dit, en jetant un scalaire de la valeur à un tableau va produire un singleton array (c'est à dire un tableau avec les scalaires comme seul élément). Cependant, comme d'autres encore ont souligné, de prendre soin de cela seulement si vous connaissez la valeur va être un scalaire et non pas un instance de classe.
De le PHP docs:
En fait, si vous voulez jeter un tableau et ne pas avoir à vous soucier de ce que vous mettez dedans, la réponse est
Vous pouvez tester avec le code suivant
$var = (array) $obj;
->$object = new stdClass;
doit être jeté dans laarray()
(tableau vide)