【PHP 02】 変数とデータ型

はじめに

PHPでは、値を扱うことを扱うとき、変数や定数といった入れものにいれ、型と呼ばれる概念で定義されています。
今回は変数、定数、そしてデータ型を勉強していきましょう。

変数

変数とは、値を入れておく箱のようなもので、一時的に計算に使う数値や出力する文字列を入れておき、使うときに取り出したり、変更したりできます。

PHPの変数定義は、ドル記号のあとに変数名が続く形で書きます。

いくつか注意点があります。

  • 大文字、小文字は区別されます。
  • 変数名には、文字、数字、アンダースコアを使う。
  • $のあとの最初の一文字には数字は使えない。文字かアンダースコアしか使えない。
  • アンダースコア以外の記号は使えない
<?php
// 変数を宣言する
$name = "yamada";
?>
view raw sp91-02-01.php hosted with ❤ by GitHub

定数

定数は、変数と違い一度設定した値を変更することができません。

PHPの定数定義に2つの方法があります。define関数を使うものとconst構文を使うものです。
const構文は PHP 5.3 で導入されたものなので、PHPのバージョンに注意しましょう。

<?php
// 定数を宣言する (define関数)
define("FOO", 1);
// 定数を宣言する (const構文)
const FOO = 1;
?>
view raw sp91-02-02.php hosted with ❤ by GitHub

慣例として、変数名は大文字で書かれていることが多いですが、大文字でなくとも問題はありません。
ですが、複数人でコードを編集するときなどは混乱を招くので、慣例通りに大文字で書くと良いでしょう。

データ型

PHPで値を扱うとき、型という概念が存在します。型の定義を自動で行うため、最初のうちは意識する必要はないですが、複雑な処理などを行う場合に知っておかなければならない概念です。

扱う値の形式を型といいます。代表的なものを一つ一つ見ていきましょう。

論理型 (boolean)

最も簡単な型であり、真偽値を表す型です。真 (true) か偽 (false) のどちらかの値しかありません。

<?php
// 論理型 (boolean)
$is_name = true;
?>
view raw sp91-02-03.php hosted with ❤ by GitHub

if文と組み合わせて使われることが多いです。

整数型 (integer)

整数を扱う型であり、10進数、16進数、8進数、2進数で表記することが可能です。また、符号 ( + , – ) をつけることができます。

<?php
// 整数型 (integer)
$count = 1;
?>
view raw sp91-02-04.php hosted with ❤ by GitHub

文字列型 (string)

文字列を扱う型です。文字列型は4つの方法で表すことができます。

<?php
// 引用符を使った文字列型
$name = 'hirosawa';
// 二重引用符を使った文字列型
$name = "hirosawa";
// ヒアドキュメント構文を使った文字列型 (二重引用符を使ったものと機能はほぼ同じ)
$name = <<<EOT
こんにちは、
hirosawaです。
EOT;
// Nowdoc構文を使った文字列型 (引用符を使ったものと機能はほぼ同じ)
$name = <<<'EOT'
こんにちは、
hirosawaです。
EOT;
?>
view raw sp91-02-05.php hosted with ❤ by GitHub

引用符

引用符で定義された文字列の中で引用符を使いたいときには、バックスラッシュを使います。バックスラッシュ()を使いたいときには、二重 (\) にします。

二重引用符はそのまま使うことができます。

二重引用符

引用符で定義した文字列と違うのは、文字列内に変数を書いたときに変数が展開される点です。

<?php
$name = 'hirosawa';
echo "こんにちは、$name";
// 結果は "こんにちは、hirosawa"と出力される
?>
view raw sp91-02-06.php hosted with ❤ by GitHub

上記のように変数を展開することができます。

引用符では下記のような使い方はできません。

<?php
$name = 'hirosawa';
echo 'こんにちは、$name';
// 結果は "こんにちは、$name"と出力される
// 二重引用符と同じ使い方はできない。
?>
view raw sp91-02-12.php hosted with ❤ by GitHub

また、エスケープされた文字を特殊な文字として解釈でき、表示がことなってきます。

詳しくは、PHP公式ドキュメントに掲載してあります。

https://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.double

文字列演算子

文字列同士を結合したい場合に結合演算子と結合代入演算子というものがあります。文字列用の演算子であり、良く使います。

<?php
// 文字列演算子 (.)
$a = "Hello ";
$b = $a . "World!";
echo $b; // Hello World! と出力されます。
// 文字列演算子 (.=)
$a = "Hello ";
$a .= "World!";
echo $a; // Hello World! と出力されます。
?>
view raw sp91-02-07.php hosted with ❤ by GitHub

配列型 (array)

配列を扱う型です。配列とは、複数のデータ型を集めて、順番を与えられた集まりの型です。
キー(key)と値(value)で構成され、キーは省略することができます。省略された場合、キーが0から始まる数値型で自動的に採番されます。

キーを指定しない配列

<?php
// 配列型 (array)
// キーを指定しない配列
$teachers = array(
"koizumi",
"hirosawa"
);
// PHP 5.4 以降ではこのようにも書けます
$teachers = [
"koizumi",
"hirosawa"
];
echo $teachers[0];
// koizumi と出力されます。
?>
view raw sp91-02-08.php hosted with ❤ by GitHub

キーを指定する配列

<?php
// 配列型 (array)
// キーを指定する配列
$teachers = array(
"koizumi" => "rare",
"hirosawa" => "normal",
);
// PHP 5.4 以降ではこのようにも書けます
$teachers = [
"koizumi" => "rare",
"hirosawa" => "normal",
];
echo $teachers["koizumi"];
// rare と出力されます。
?>
view raw sp91-02-09.php hosted with ❤ by GitHub

他にも…

型を調べる

<?php
// 型を調べる
$name = "hirosawa";
echo gettype($name);
// 型 (string) が出力される
?>
view raw sp91-02-10.php hosted with ❤ by GitHub

型を調べるには、gettypeという関数を使って調べます。

型を変換する

PHPで値を扱っていると、数字を文字に、文字を数字に変換したいケースが多々出てきます。
そんなときは下記のように記述します。

<?php
//型を変換する
$count_str = "10";
$count = (int) $count_str;
?>
view raw sp91-02-11.php hosted with ❤ by GitHub
前の記事へ 次の記事へ