Je me demande simplement s'il y a quelque chose comme. = Pour ajouter du texte au début d'une chaîne, par exemple:
$foo =. 'bar';
ce qui ne fonctionne pas.
Edit: l'exemple était à l'origine $foo =. $bar;
qui peut être réalisé avec$bar .= $foo;
$foo
à$bar
, au lieu de préfixer$bar
à$foo
. Le résultat est similaire, mais je pense qu'il veut muter$foo
.Réponses:
Nan. Mais tu peux faire
la source
Vous pouvez toujours créer votre propre fonction pour cela:
$string
serait l'élément que vous souhaitez ajouter au début et$chunk
le texte que vous souhaitez ajouter au début.Vous pourriez dire que les vérifications sont facultatives, mais en les contenant, vous n'avez pas à vous soucier de transmettre une valeur nulle par accident.
la source
!empty
toujoursisset
, pas besoin de cette double vérification. De plus, puisque$chunk
c'est un paramètre obligatoire de la fonction, il doit être passé à la fonction ou PHP se plaindra. Cela signifie que cette vérification peut être abrégée enif ($chunk)
(pour voir si elle est fausse ou "vide"). Mais, s'il$chunk
ne contient rien, rien ne se passera de toute façon. Donc, tout ce corps de fonction peut être abrégé enreturn $string . $chunk
. Ce qui signifie que toute cette fonction est assez inutile.$foo . $bar
. Je vous mets au défi de trouver n'importe quel cas important où votre fonction fait quelque chose de différent. :)Je sais que cela a été demandé / répondu il y a quelque temps, mais en fournissant cette réponse car elle est fonctionnellement équivalente bien qu'elle ne soit pas un opérateur d'affectation et que personne n'a commenté son utilisation pour la concaténation générale de chaînes.
Vous voudrez peut-être examiner l'utilisation de la famille de fonctions
sprintf
( documentation ) pour la concaténation de chaînes. Il fournit beaucoup plus de nettoyage et de convivialité que la simple combinaison de deux chaînes avec des opérateurs d'affectation.J'utilise normalement
vsprintf
, car travailler avec des tableaux est plus facile à gérer des positions de valeur que des arguments individuels.Aussi avec un tableau de valeurs, on peut simplement
implode
le jeu de valeurs résultant pour une concaténation de chaîne simple.la source
sprintf
est couramment utilisé dans plusieurs langues.sprintf
a sa place et son but sur le moment de l'utiliser. par exemple. la conversion de plusieurs valeurs ou l'application d'un certain nombre d'entrées à l'aide desprintf
, vous offre plus de fonctionnalités qu'une simple concaténation lorsque cela est nécessaire . Voir: 3v4l.org/8PWil Mais il ne doit pas être utilisé comme un remplacement complet pour la concaténation.Vous pouvez encapsuler la fonction intégrée
substr_replace
, où les arguments $ start et $ length peuvent être définis sur 0, ce qui ajoute le remplacement $ à $ string et renvoie le résultat, comme ceci:Un exemple d'utilisation de la fonction d'assistance serait:
Si vous êtes dans la programmation procédurale, c'est.
la source
$string = $prefix.$string;
dans la fonction fera l'affaire.En transformant le commentaire de Blakethepatton en réponse (merci), un moyen de le faire plus proprement pour les noms de variables plus longs consiste à utiliser une référence à la variable comme suit:
Cela vous évitera de taper la réponse d'Eric V si votre nom de variable d'origine est de 12 caractères ou plus.
Une alternative sur une seule ligne:
la source