web-dev-qa-db-fra.com

Comment combiner deux chaînes ensemble en PHP?

Je ne sais pas comment décrire ce que je voulais mais je vais vous montrer:

Par exemple:

$data1 = "the color is";
$data2 = "red";

Que dois-je faire (ou traiter) pour que $ result soit la combinaison de $data1 et $data2?

Résultat désiré:

$result = "the color is red";
111
glennanyway
$result = $data1 . $data2;

C'est ce qu'on appelle la concaténation de chaînes. Votre exemple manque d'espace, alors pour cela, il vous faudrait

$result = $data1 . ' ' . $data2;
172
Logan Serman

Il existe plusieurs façons de concaténer deux chaînes.

Utilisez l'opérateur de concaténation . (et .=)

Dans PHP . est l'opérateur de concaténation qui renvoie la concaténation de ses arguments droit et gauche

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;

Si vous souhaitez ajouter une chaîne à une autre chaîne, utilisez l'opérateur .=:

$data1 = "the color is ";
$data1 .= "red"

Syntaxe complexe (frisée)/guillemets doubles chaînes

Dans PHP, les variables contenues dans des chaînes entre guillemets doubles sont interpolées (c'est-à-dire que leurs valeurs sont "permutées" pour la variable). Cela signifie que vous pouvez placer les variables à la place des chaînes et simplement mettre un espace entre elles. Les accolades indiquent clairement où sont les variables.

$result = "{$data1} {$data2}";

Remarque: cela fonctionnera également sans les accolades dans votre cas:

$result = "$data1 $data2";

Utiliser sprintf() ou printf()

sprintf() nous permet de formater des chaînes en utilisant de puissantes options de formatage. Il est excessif pour une concaténation aussi simple, mais il est pratique lorsque vous avez une chaîne complexe et/ou que vous souhaitez également formater les données.

$result = sprintf("%s %s", $data1, $data2);

printf() fait la même chose mais affiche immédiatement la sortie.

printf("%s %s", $data1, $data2);
// same as
$result = sprintf("%s %s", $data1, $data2);
echo $result;

Heredoc

Heredocs peut également être utilisé pour combiner des variables dans une chaîne.

$result= <<<EOT
$data1 $data2
EOT;

Utiliser un , avec echo()

Cela ne fonctionne que lorsque vous renvoyez du contenu sans affecter une variable. Mais vous pouvez utiliser une virgule pour séparer une liste d'expressions afin que PHP puisse renvoyer en écho et utiliser une chaîne avec un espace vide comme l'une de ces expressions:

echo $data1, ' ', $data2;
67
John Conde

Personne n'en a parlé mais il y a une autre possibilité. Je l'utilise pour d'énormes requêtes SQL. Vous pouvez utiliser. = Opérateur :)

$string = "the color is ";
$string .= "red";

echo $string; // gives: the color is red
19
codelame

Concaténez-les avec l'opérateur .:

$result = $data1 . " " . $data2;

Ou utilisez une interpolation de chaîne:

$result = "$data1 $data2";
17
Jeremy Ruten
$result = implode(' ', array($data1, $data2));

est plus générique.

Voici un autre formulaire disponible:

<?php
$data1 = "the color is";
$data2 = "red";
$result = "{$data1} {$data2}";
7
Tim G

Vous pouvez essayer la ligne de code suivante

$result = $data1." ".$data2;
6
user710502

Vous pouvez le faire en utilisant PHP:

$txt1 = "the color is";
$txt2 = " red!";
echo $txt1.$txt2;

Cela combinera deux chaînes et le résultat sera: "la couleur est rouge!".

5
sunil
$result = $data1 . $data2;

essaye ça

5
Farhan

Un point est utilisé pour concaténer des chaînes. Exemple simple pour transformer deux variables de chaîne en une seule variable:

$full = $part1 . $part2;

Dans votre exemple, vous voudriez faire:

$result = $data1 . ' ' . $data2;

Vous remarquerez que j'ai ajouté une chaîne d'un espace entre les deux variables. En effet, votre $data1 d'origine ne s'est pas terminé avec un espace. Si vous les aviez combinées sans cela, votre variable $result ressemblerait à the color isred.

4
Aken Roberts

Cela devrait fonctionner pour vous: 

$result = $data1." ".$data2; 

Référence: PHP Variables de chaîne

3
Robert
$s = "my name is ";

$s .= "keyur";

echo $s; 

résultat: 

my name is keyur
2
keyur sojitra

Je ne sais pas exactement quelles sont vos exigences, mais vous pouvez fondamentalement définir séparément les deux variables et les combiner par la suite.

$data1="The colour is ";
$data2="red";

$result=$data1.$data2;

En faisant cela, vous pouvez même déclarer $ data2 au niveau global afin de pouvoir changer sa valeur pendant l'exécution, par exemple, il pourrait obtenir la réponse "rouge" à partir d'une case à cocher.

1
Yoosuf

1.Concaténer la chaîne (espace entre chaque chaîne) 

Extrait de code :

<?php
 $txt1 = "Sachin";
 $txt2 = "Tendulkar";

 $result = $txt1.$txt2 ;
 echo  $result. "\n";
 ?>  

Sortie: SachinTendulkar

2.Concatenate la chaîne où l'espace existe 

Extrait de code :

<?php
 $txt1 = "Sachin";
 $txt2 = "Tendulkar";

 $result = $txt1." ".$txt2; 
 echo  $result. "\n";
?>  

Sortie: Sachin Tendulkar

  1. Concaténer la chaîne en utilisant la fonction printf. 

Extrait de code :

  <?php
 $data1 = "Sachin";
 $data2 = "Tendulkar";
 printf("%s%s\n",$data1, $data2);
 printf("%s %s\n",$data1, $data2); 
?>

Sortie:
SachinTendulkar
Sachin Tendulkar 

0
rashedcs

Je crois que le moyen le plus performant est:

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;

Si vous voulez implémenter la localisation, vous pouvez faire quelque chose comme ceci:

$translationText = "the color is %s";
$translationRed  = "red";
$result = sprintf($translationText, $translationRed);

C'est un peu plus lent, mais cela ne suppose pas de règles de grammaire.

0
Pedro Amaral Couto