PHPで文字列を結合させる方法【初心者向け】
プログラミング初心者向けに、PHPで【文字列を結合させる】方法を解説した記事です。PHPでは「連結演算子」を使うことで、文字列や変数をくっつけて出力することができます。例を3つ使っているので実践してみましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
井上 祐介
プログラミング初心者向けに、PHPの基礎を紹介する記事です。PHPで文字列を結合させる方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
文字列の結合とは文字などをつなげることです。
文字列結合を使うと、あいさつのメッセージにユーザーの名前をつなげて表示したり、価格の数値の後に「円」を一緒に出力もできます。
目次
- 文字列を結合させる【.】 - 結合演算子
- 文字列を連結して代入する【.=】 - 結合代入演算子
- 変数を展開する【"】 - ダブルクォーテーション
- 配列の文字列を結合する【implode】
- [補足]暗黙の型変換
- おわりに
- PHPを学習中の方へ
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
PHPでは、文字列や変数をくっつけ、加工したり出力したりできます。
その場合使うのが、結合演算子「.(ドット)」です。
結合演算子「.(ドット)」以外にダブルクォーテーション「”」で変数を展開したり、配列を文字列として結合したりするimplode関数などがあります。
田島メンター!よく会員サイトで見かける「こんにちは、~さん」という表示はどうやってるんですか?まさか会員ごとにHTMLを書いてるんですか??
もちろん、プログラムで出力してるんだよ。今回紹介する、文字列の連結演算子がいいね。
文字列をつなげることが出来るんですね。
そうなんだ。使っているユーザーの名前や数値を固定のメッセージとつなげて表示できるんだよ。まるで「自分専用」のサイトのように見せることができるんだ。
たしかに「こんにちは」と表示されるだけよりも、「こんにちは、大石さん」と出たほうが「私専用」って感じがしますね。まるでわたしのコンシェルジュがいるみたいです!
そうだね。では文字列をつなげる方法を、さっそく見てみよう!
文字列を結合させる【.】 – 結合演算子
まずは基本となる文字列の結合をさせてみます。
結合演算子「.(ドット)」を使って名前と敬称の文字列を結合させます。
次のような書き方になります。
文字列(または変数) . 文字列(または変数);
ソースコード
$name = "ゆかり";
$message = $name . "様";
echo $message;
表示結果
解説
文字列として連結するには結合演算子「.(ドット)」を使って文字列同士、数値、変数などさまざまな値を文字列として結合できます。
※PHP以外のプログラミング言語では、+を文字列結合の演算子として使う場合もありますので間違えないようにしましょう。
文字列を連結して代入する【.=】 – 結合代入演算子
結合代入演算子「.=」を使えば文字列の結合と代入を同時に行うことができます。
次のような書き方になります。
結合をしたい変数 .= 結合する文字列や変数;
左辺にある変数に右辺の文字列が代入されます。
たとえば、次の2つのコードは同じ結果です。
<pre”>$str = $str . “さん”;
$str =. "さん";
あいさつのメッセージを出力するコードの例をみてみましょう。
ソースコード
$message = "こんにちは。";
$message .= "ゆかり";
$message .= "様";
echo $message;
表示結果
解説
このように、連結演算子「.=」を使えば変数の最後に文字列をどんどん繋げられます。
最初に代入する変数は普通に代入するか、空文字列「””」で初期化しておきましょう。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
変数を展開する【”】 – ダブルクォーテーション
ダブルクォーテーション「”」を使うと、出力するときに変数の中身が文字列と一緒に出力されるようにできます。
途中に演算子をはさむ必要がないのでコードが見やすくなります。
次のような書き方になります。
“文字列{$変数}文字列”;
※{$変数}の前後の文字列はあってもなくても構いません。
※{$変数}はダブルクォーテーション「”」の中に複数でも入れられます。
※シングルクォーテーション「’」だと展開されません。
※中かっこ「{」なしでも変数を展開できますが、変数名が正しく認識されない場合があります。(例:変数$abcを展開したい場合、”$abcdef”では$abcdefの変数と認識されてしまいます)
名前とポイント数を出力するコードを見てみましょう。
ソースコード
$name = "ゆかり";
$point = 32;
$message = "{$name}様のポイントは {$point}ptです。";
echo $message;
表示結果
解説
変数の中身を展開して文字列と結合したいときは、ダブルクォーテーション「”」で文字列と変数を一緒にくくります。
変数名を正しく認識させるために、変数は中かっこ「{」で囲います。
配列の文字列を結合する【implode】
implodeを使うと配列の中身を展開し、指定した区切り文字でつないだ文字列を作成できます。
次のような書き方になります。
implode(“区切り文字”, 配列);
※上記はPHP7以下の場合でPHP8ではimplode(配列, “区切り文字”)となり引数が逆になります。
配列にある各教科の点数をカンマ区切りで出力するコードを見てみましょう。
ソースコード
$scores = [89, 75, 63];
$str = implode(',', $scores);
echo $str;
表示結果
解説
配列の中身を順番に文字列として結合するにはimplodeを使います。
implodeの2番目の引数は値と値の間を区切る文字を指定します。
[補足]暗黙の型変換
数値同士や文字列同士を連結させる場合は、同じデータ型なので問題はありません。
データ型とは、コンピューターが値を認識する際に数値なのか文字なのか判断する基準といえます。
PHPではデータ型を変換しても意味が通じそうな場合には、プログラム側で自動的に型変換を行います。
int型
例えば「10」という数値はint型になります。
intとは英語のintegerを省略したもので、整数を意味するデータ型です。
string型
例えば「テックアカデミー」という文字はstring型といいます。
stringとは文字列を扱う際に指定するデータ型の一種です。
暗黙の型変換の例
ここで、int型とstring型が混在したプログラムの暗黙の型変換の例を紹介します。
コード
<?php
$num = 10 + "20";
print $num;
?>
解説
int型の「10」とstring型の”20″の足し算の計算結果を、変数$numに代入しています。
本来であればint型とstring型という別のデータ型ですが、数値として認識できそうなので計算が可能です。
結果的にprint文を利用して「30」が表示されます。
おわりに
以上のように、連結演算子を使えば、文字列や変数などをくっつけて扱うことができます。ぜひご自身でも応用してみてください。
PHPをさらに勉強したい場合は、PHPで構文チェックを行う方法、PHPとHTMLをまとめてコメントアウトする方法についても合わせて読んでみてください。
文字列をシングルクォーテーションやダブルクォーテーションで囲んで、連結演算子を用いると、文字列をつなげることができますね。
その通り!後、数値の場合ちょっと注意が必要かな。
数値と文字列を連結したら、文字列になりますよね?
スクリプト言語の場合はちょっと柔軟な場合があって、数値の文字列と数値の字列を掛け算すると、普通に数値の結果が出ることもあるんだよね。勝手に型が変換されることもあるから注意しよう!
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!