テクノロジー

2023年1月1日

文字列型

文字列の型の種類が理解できるようになる

文字列型

文字列のリテラルは、 ‘A’ や “A” のようにクォーテーションで囲みます。クォーテーションで囲まれた文字は、文字列と認識され、string型のデータ型となります。

文字列の結合

文字列は、.を使って文字列と文字列や、文字列と数値を連結できます。

[例]

<?php
 
echo 'A' . 'BC' . PHP_EOL;
echo 'A' . 1 . PHP_EOL;

[実行結果]

ABC
A1

シングルクォートとダブルクォートの違い

文字列を囲う記号は、シングルクォート、ダブルクォートのどちらでも可能です。
しかし、式展開や改行文字を使うときには、ダブルクォートを使う必要があります。

[例]

<?php

$greeting = 'Hello';
echo "{$greeting}\nWorld\n"; // greetingを式展開し、\nを改行文字として出力
echo '{$greeting}\nWorld';  // greetingを式展開せず、\nは文字としてそのまま出力

[実行結果]

Hello
World
{$greeting}\nWorld

文章を変数に入れるときのさまざまな方法

ヒアドキュメントは、改行やホワイトスペースなどが書いたとおりに適用される方法で、複数行に渡る長い文字列を作成する場合に活用できます。<<<という識別子を使い、<<<の後ろにヒアドキュメントの始まりと終わりを示す文字列の識別子を記述します。ホワイトスペースとは、空白や改行として認識される文字を指します。
以下の例では、よく利用されるEOS(End Of String)という識別子を使っていますが、始まりと終わりが統一されていればEOS以外の文字も利用可能です。

[例]

<?php
 
echo <<<EOS
  Hello
  World
EOS . PHP_EOL;

[実行結果]

Hello
World

改行やインデントが反映されています。
また、ヒアドキュメントでも式展開を行うことができます。

[例]

<?php
 
$greeting = 'Hello';
echo <<<EOS
"{$greeting}"
  World
EOS .PHP_EOL;

[実行結果]

  "Hello"
  World

識別子となる文字列にシングルクォートをつけると、式展開されなくなります。
識別子となる文字列にクォートをつけないか、ダブルクォートをつけると式展開されます。
式展開したくない時だけシングルクォートをつける、と覚えておけばよいでしょう。

[例]

<?php
 
$greeting = 'Hello';
echo  <<<'EOS'
"{$greeting}"
  World
EOS . PHP_EOL;

[実行結果]

"{$greeting}"
  World

string型を操作する関数

string型のデータに対してさまざまな操作を行うための関数が用意されています。
よく使われるものを紹介します。

trim

trim関数は、文字列の先頭および末尾の空白を取り除いた値を返します。
文字列の終端が "\r\n" であればその2文字を取り除きます。

[例]

<?php

echo trim("abc\n ") . PHP_EOL;

[実行結果]

abc

substr

substr は文字列の一部を抽出するために使用されます。
例えば、文字列のインデックスが2の位置から2文字のみを抽出したい場合、以下のように記述します。

[例]

<?php
 
echo substr('abcde', 2, 2) . PHP_EOL;

[実行結果]

cd

strlen

strlenは、文字列の文字数を返します。

[例]

<?php
 
echo strlen('abcde') . PHP_EOL;

[実行結果]

5

まとめ

- 文字列はすべてstring型のデータとして認識される。
- 式展開をや改行文字を使う場合は、ダブルクォートを使用する。
- string 型を操作するためのさまざまな関数が用意されている。

公式ドキュメント・参考情報

1. string

2. ヒアドキュメント

3. trim

4. substr

5. strlen

DIVE INTO CODEのことをもっと知ってみませんか?