- 公開日: 2017年08月17日
phpの文字列の連結の仕方を解説!
今回は、phpにおいてのphpの文字列を連結(文字列結合)する方法についていくつか解説をしていきます。
phpの文字列の連結の仕方
phpにおいて、文字列を連結(文字列結合)する方法はいくつか存在します。 また、文字列を連結した結果をechoで表示したり、さらに他の変数と連結したりといろいろなことが可能なので、併せて解説いたします。
連結演算子
phpでは文字列を連結する際に、連結演算子 ( . ) というものを使用します。
例文
echo "私が飼っている犬の名前は"."BEN"
上記では、"私が飼っている犬の名前は"という文字列に対して、"BEN"という文字列を追加しています。結果として表示されるのは
"私が飼っている犬の名前はBEN"
です。
更に、連結演算子は複数使用することができます。
echo "私が飼っている犬の名前は"."BEN"."です。"
末尾に"です。"が追加されているのがわかりますね。
上記の結果として表示されるのは
"私が飼っている犬の名前はBENです。"
このようになります。
更に更に、連結演算子は変数と文字列、または変数同士を連結することも可能です。
$name = "BEN";
echo "私が飼っている犬の名前は".$name."です。"
$animal = "馬";
$name = "アナコンダ";
echo "私が飼っている".$animal."の名前は".$name."です。"
上記の結果は
"私が飼っている犬の名前はBENです。"
"私が飼っている馬の名前はアナコンダです。"
となります。
連結演算子 + 代入演算子
連結演算子は、代入演算子と組み合わせて使用することも可能です。
$name = "私の名前は";
$name .= "佳代子";
$name .= "です。";
echo $name;
上記の結果は
"私の名前は佳代子です。"
となります。
文字列の中の変数展開
ここまでで連結演算子を紹介しましたが、連結演算子を使用せずに、文字列の中に埋め込む方法も存在します。
例文はこちら
$name = "佳代子";
echo "私の名前は${name}です。"
上記の結果は
"私の名前は佳代子です。"
となります。これは、文字列の中に変数$nameを展開する方法で、文字列の中に${変数名}を入れることで、処理が実行される際に、$nameを文字列の中に埋め込むことができます。
複数の変数を埋め込むことも可能です。
$animal = "馬";
$name = "アナコンダ";
echo "私が飼っている${animal}の名前は${name}です。"
上記の結果も今まで同様
"私が飼っている馬の名前はアナコンダです。"
となります。
implode()
文字列の連結には配列を使用した方法もあります。 これは、結合したい文字列を配列として格納し、最後にimplode()を使用して連結する方法です。
配列として$arrを宣言し、中に連結したい文字列を追加していきます。
$name = "アナコンダ";
$arr = array();
$arr[] = "私が飼っている馬の名前は";
$arr[] = $name;
$arr[] = "です。";
echo implode($arr);
上記の結果は
"私が飼っている馬の名前はアナコンダです。"
となります。
implode()は、区切り文字を引数にすることができます。
$arr = array("犬", "猫", "鳥");
echo implode("、", $arr);
上記の結果は
"犬、猫、鳥"
となります。
\Webサイト担当者としてのスキルが身に付く/
文字列の連結の速度を比較
続いて、文字列を連結する際にどの方法だと早いのか、逆にどれが遅いのかを検証してみました。
下記の方法で計測することが可能です。
<?php
$start = microtime(true);
// 計測する処理
echo microtime(true) - $start;
処理速度を計測する際にそれぞれ10,000回処理を行い、その実行速度を下の図で表しました。
1回目
2回目
3回目
私のPCの状態にもよるので一概には言えませんが、 代入演算子のみの場合と、文字列の中の変数展開が他に比べると早いように思います。
implode()は明らかに他よりも遅くなっていますね。
上記より、implode()や、連結演算子 + 代入演算子 を利用するよりは、 代入演算子のみか、文字列中の変数展開を利用すると、早いと思われます。
- この記事を書いた人
- ベンジャミン吉澤