文字列
前回、変数に文字列を格納するケースを学習しました。
ここでは、文字列の応用について解説します。
文字列の結合
例えば、以下のように書きます。
htdocs/PHP/test.php
<?php
$string = 'Hello'.'World'; // 文字列の結合
echo $string;
?>
文字列の結合は、ドット(.)を使います。
‘Hello’という文字列と、’World’という文字列を、間にドットを記述することで結合することができます。変数$stringには、結合された文字列である「HelloWorld」が格納されます。
以下のようにも書けます。
htdocs/PHP/test.php
<?php
$string1 = 'Hello';
$string2 = 'World';
$string = $string1.$string2; // 文字列の結合
echo $string;
?>
同じ結果になりました。
変数$string1に文字列「Hello」、変数$string2に文字列「World」を格納します。
これらの変数をドットで結合することで、格納されている値が結合されます。
よって、変数$stringには、結合された文字列である「HelloWorld」が格納されます。
以下のように、シングルクォーテーションの文字列と変数を結合することもできます。
htdocs/PHP/test.php
<?php
$string = '佐藤';
echo '名前は'.$string.'です';
?>
‘名前は’という文字列と、変数$stringと、’です’という文字列を、間にドットを記述することで結合しています。この場合、変数$stringは、格納されている値「佐藤」が出力されます。
ダブルクォーテーション
ここまで、文字列はシングルクォーテーション(’)で表現してきました。
実は、文字列はダブルクォーテーション(”)でも書くことができます。
htdocs/PHP/test.php
<?php
echo 'Hello, World'; // シングルクォーテーション
echo '<br>';
echo "Hello, World"; // ダブルクォーテーション
?>
シングルクォーテーションでもダブルクォーテーションでも、同じ出力結果になりました。
以下のように書き換えてみます。
htdocs/PHP/test.php
<?php
$string1 = '佐藤';
echo 'こんにちは、$string1 さん'; // ①シングルクォーテーション
echo '<br>';
$string2 = "佐藤";
echo "こんにちは、$string2 さん"; // ②ダブルクォーテーション
?>
①ではシングルクォーテーションの中に変数を記述しており、echoでは変数名がそのまま表示されています。
②ではダブルクォーテーションの中に変数を記述しており、echoでは変数に格納されている値が表示されています。
このように、ダブルクォーテーションの中に変数を記述すると、変数に格納されている値が使われるのです。
変数に格納されているのが数値でも同様です。
htdocs/PHP/test.php
<?php
$number1 = 100;
echo '数字は、$number1 です'; // シングルクォーテーション
echo '<br>';
$number2 = 100;
echo "数字は、$number2 です"; // ダブルクォーテーション
?>
では、シングルクォーテーションとダブルクォーテーション、どちらを使えばよいのでしょうか。それは、シングルクォーテーションです。
ダブルクォーテーションの場合、内部的に「変数はあるかな?あったら格納されている値を取り出して…」という処理が行われるため、処理速度が遅くなるためです。
変数を文字列と混在させて出力したい場合は、以下のように書きましょう。
htdocs/PHP/test.php
<?php
$string = '佐藤';
echo 'こんにちは、'.$string.'さん';
?>
これで、シングルクォーテーションだけで、変数を出力させることができました。
数値の計算
PHPでの数値の計算について解説します。
足し算と引き算
PHPでの足し算、引き算は、算数と同様「+」「ー」を使います。
例えば、以下のように書きます。
htdocs/PHP/test.php
<?php
// 足し算の例①
echo 1 + 1;
echo '<br>';
// 足し算の例②
$number1 = 2;
$number2 = 3;
echo $number1 + $number2;
echo '<br>';
// 引き算の例①
echo 2 - 1;
echo '<br>';
// 引き算の例②
$number1 = 5;
$number2 = 2;
echo $number1 - $number2;
?>
掛け算と割り算
PHPでの掛け算は「アスタリスク(*)」、割り算は「スラッシュ(/)」を使います。
例えば、以下のように書きます。
htdocs/PHP/test.php
<?php
// 掛け算の例①
echo 1 * 1;
echo '<br>';
// 掛け算の例②
$number1 = 2;
$number2 = 3;
echo $number1 * $number2;
echo '<br>';
// 割り算の例①
echo 2 / 1;
echo '<br>';
// 割り算の例②
$number1 = 5;
$number2 = 2;
echo $number1 / $number2;
?>
余り
PHPで余りを計算する場合は「%」を使います。
htdocs/PHP/test.php
<?php
// 余りの計算の例①
echo 6 % 3;
echo '<br>';
// 余りの計算の例②
$number1 = 7;
$number2 = 5;
echo $number1 % $number2;
?>
単項演算子
単項演算子とは、「++」(インクリメント)や「–」(デクリメント)のように書き、数値をプラス1したり、マイナス1することができます。
例えば、以下のように書きます。
htdocs/PHP/test.php
<?php
// インクリメントの例
$number = 1;
echo $number;
echo '<br>';
$number++; // インクリメント(ここで、$numberに格納されている値は、プラス1されます)
echo $number;
echo '<br>';
// デクリメントの例
$number = 10;
echo $number;
echo '<br>';
$number--; // デクリメント(ここで、$numberに格納されている値は、マイナス1されます)
echo $number;
?>
「$number++」は、「$number = $number + 1」(変数$numberの値にプラス1した値を、再び変数$numberに格納する)と同じです。
「$number–」は、「$number = $number – 1」(変数$numberの値にマイナス1した値を、再び変数$numberに格納する)と同じです。
代入演算子
代入演算子は、「+=」「-=」「*=」「/=」のように書き、数値を加算したり、減算したり、乗算したり、除算することができます。
例えば、以下のように書きます。
htdocs/PHP/test.php
<?php
// 代入演算子(加算)の例
$number = 1;
echo $number;
echo '<br>';
$number += 2; // 代入演算子(加算):$numberに格納されている値は、プラス2されます。
echo $number;
echo '<br>';
// 代入演算子(減算)の例
$number = 10;
echo $number;
echo '<br>';
$number -= 5; // 代入演算子(減算):$numberに格納されている値は、マイナス5されます。
echo $number;
echo '<br>';
// 代入演算子(乗算)の例
$number = 2;
echo $number;
echo '<br>';
$number *= 3; // 代入演算子(乗算):$numberに格納されている値は、掛ける3されます。
echo $number;
echo '<br>';
// 代入演算子(除算)の例
$number = 10;
echo $number;
echo '<br>';
$number /= 2; // 代入演算子(除算):$numberに格納されている値は、割る2されます。
echo $number;
echo '<br>';
?>
「$number += 2」は、「$number = $number + 2」と同じです。
「$number -= 5」は、「$number = $number – 5」と同じです。
「$number *= 3」は、「$number = $number * 3」と同じです。
「$number /= 2」は、「$number = $number / 2」と同じです。
演算子の優先順位
PHPの四則演算の優先順位は、算数と同じです。
例えば、以下のようになります。
htdocs/PHP/test.php
<?php
// 四則演算の優先順位の例①
echo 1 + 2 * 3;
echo '<br>';
// 四則演算の優先順位の例②
echo (1 + 2) * 3;
?>
括弧でくくるとそちらの計算が優先されます。
データ型
ここまで、変数には数値(整数)か文字列を格納してきました。
PHPには「データ型」という考え方があり、データの種類を表現します。
例えば、「1」のような数値(整数)は「整数型(=int型)」と言います。
例えば、「Hello, World」のような文字列は「文字列型(=string型)」と言います。
他にも、以下のようなデータ型があります。これは覚えるしかありません。
データ型 | データの例 | 概要 |
---|---|---|
整数型(int型) | 1 | 整数 |
文字列型(string型) | Hello, World | 文字列 |
論理型(bool型) | true | 「true」または「false」を扱います。 |
浮動小数点型(float型) | 0.1 | 小数点の値を扱います。 |
配列型(array型) | [1, 2, 3] | データの集合を扱います。詳細は後述します。 |
オブジェクト型 | – | データと手続きの集合を扱います。詳細は後述します。 |
null型 | null | 何も値が無い状態を表します。 |
var_dump
PHPのvar_dumpという命令を使うことで、変数に格納されている値のデータ型を確認することができます。「var_dump(出力したい変数);」のように使います。
例えば、以下のように書きます。
htdocs/PHP/test.php
<?php
// データ型の確認①(int型)
$test = 1;
var_dump($test); // var_dumpを使って、画面にデータ型を出力します。
echo "<br>";
// データ型の確認②(string型)
$test = 'Hello, World';
var_dump($test);
echo "<br>";
// データ型の確認③(bool型)
$test = true;
var_dump($test);
echo "<br>";
// データ型の確認④(float型)
$test = 0.1;
var_dump($test);
echo "<br>";
// データ型の確認⑤(null型)
$test = null;
var_dump($test);
?>
var_dumpを使うことで、変数に格納されている値のデータ型と、その時の実際の値を表示することができました。
例えば、データ型の確認①の変数$testは、整数型(=int型)の値をもっており、その値は「1」です。
例えば、データ型の確認②の変数$testは、文字列型(=string型)の値をもっており、その値は「Hello, World」です。
例えば、データ型の確認③の変数$testは、論理型(=bool型)の値をもっており、その値は「true」です。
例えば、データ型の確認④の変数$testは、浮動小数点型(=float型)の値をもっており、その値は「0.1」です。
null型とは、何も値が無い状態、かつ他のどのデータ型にも属さない状態を示します。
本節の説明は以上になります。