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";
$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;
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;
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
Concaténez-les avec l'opérateur .
:
$result = $data1 . " " . $data2;
Ou utilisez une interpolation de chaîne:
$result = "$data1 $data2";
$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}";
Vous pouvez essayer la ligne de code suivante
$result = $data1." ".$data2;
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!".
$result = $data1 . $data2;
essaye ça
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
.
$s = "my name is ";
$s .= "keyur";
echo $s;
résultat:
my name is keyur
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.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
- 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
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.