変数とデータ型

実際に変数を使ってみよう


前項のプログラムを変数を使って書き換えてみます。
まず$messageという変数を宣言し、$message = "Hello World!";とします。

<?php
// index.php
$message = "Hello World!";
?>

次に、echo $message;と書きます。

<?php
// index.php
echo $message;
?>

変数は$から始まり、その後に自分で好きな変数名を付けます。
= 代入演算子 と呼ばれるもので、左辺に右辺を代入します。
要は、 $messageという箱に「Hello World」という文字を入れる ことです。

そうするとechoで出力した場合、その箱を開けて、中に入っている文字を表示させることができます。
全体的にはこのようになります。

<?php
// index.php

$message = "Hello World!";

echo $message;
?>

実際に表示させてみましょう。
http://localhost/LetsEngineer/curriclum/2-2/index.php

ちゃんとHello World!と表示されていたかと思います。

変数作成における注意点


変数作成において以下の注意点がありますので、気をつけて下さい。

  • $から始まること
  • 英数字、_は使用可能
  • $の直後に数字はつけられない($7elevenは悪い例)
  • 大文字と小文字は区別される($Apple$appleは違う変数)

予約語について


変数名のルールとしてもうひとつ、「予約語は使えない」というものがあります。
予約語とはPHPの言語自体に使われているさまざまな語句です。
詳細は以下にまとまっていますので一度確認してみましょう。
PHP公式ドキュメント -予約語の一覧-

変数に入るデータの型について


変数(箱)に入れる値には というカテゴリで分けられます。
どうしてそのようなカテゴリがあるのかは追い追い理解できると思いますが、ここでは代表的なカテゴリを説明します。

文字列


文字を"(ダブルコーテーション)で囲えば、それが文字列のデータになります。
もしくは'(シングルコーテーション)で囲っても OK です。
ダブルコーテーションとシングルコーテーションには使い分けがありますが、それについては後述します。
先ほど書いたコードがまさにそうですね。

<?php
// ダブルコーテーションで囲われているので文字列
$message = "Hello World!";
echo $message;
?>

数値


整数値と小数値を扱うことができます。

<?php
// echo $message;の次の行から続き
$x = 8;
$y = 5.55;
echo $x;
echo $y;
?>

それではブラウザで表示させてみましょう。

表示はされたかと思いますが、繋がってしまってみにくいですね。。。

改行について

PHPのechoはブラウザで出力する場合、改行などを考慮しません。
そのため、こちらで意図して改行コードを仕込んであげる必要があります。

改行コードは下記で出力できます。

<?php
echo '<br>';
?>

<br>とはHTMLの改行コードのことです。
PHPでブラウザ上のHTMLに仕込んでいるのですが、少し理解が難しいと思ったら、とりあえずこれを書いた場所で改行ができる、と覚えておいてください。

先ほどのコードにこの改行させるコードを追記します。

<?php
$message = "Hello World!";
echo $message;
// Hello World!を出力した後に改行
echo '<br>';

$x = 8;
$y = 5.55;
echo $x;
// 8を出力した後に改行
echo '<br>';

echo $y;
?>

これでどうでしょうか?
見やすくなったと思います。

あれ、別に文字列とそんなに変わらなくない?と思うかもしれません。
そうですね、ブラウザ上で表示する上で、ほとんど変わりません。

ここで、また新しい命令ですが、var_dumpというメソッドを使用してみたいと思います。

変数の型まで出力するvar_dump


var_dumpは、echoとは異なり、変数中の型情報まで表示してくれます。
先ほどまでのコードの中でechoで出力していた部分を下記のように書き換えてください。

<?php
$message = "Hello World!";
var_dump($message);

$x = 8;
$y = 5.55;
echo '<br>';
var_dump($x);
echo '<br>';
var_dump($y);
?>

ブラウザで表示してみると、下図のようになるかと思います。

  • String…文字列であることを表しています。(12)は半角スペースを含めた文字列の長さです。
  • int…整数型であることを表しています。(8)は変数に入れた8のことです。
  • float…小数値型であることを表しています。(5.55)は変数に入れた5.55のことです。

このように、echoでは表示されませんでしたが、データはそれぞれ型を持っていることが分かります。
研修序盤ではあまり意識することはありませんが、大切なことなので覚えておきましょう。

論理値


true(正しい)、false(違う)という真偽値のことです。
今後学習する条件分岐でよく使用します。
例えば、ログイン画面からログインするとき、

  • 入力されたユーザー名とパスワードが 正しければ マイページにとばす
  • 入力されたユーザー名とパスワードが 誤っていれば ログイン画面に戻す

といった具合です。
詳細は今後の研修でやりましょう。

<?php
// 改行コードは適宜挟んでください。
$flag = true;
var_dump($flag);
?>

論理値は bool と表示されます。
これは boolean (ブーリアン)という単語の略で、true/falseのことをまとめてこう言ったりします。

NULL型


これはプログラミング特有だと思いますが、「変数の中に何も入っていないこと」を表せるようにしなければなりません。
え、空だったら何もいれなければいいんじゃないの?と思うかもしれません。
試しに、下記を追記してみましょう。

<?php
// 右辺になにも記述しない
$emp = ;
var_dump($emp);
?>

これでブラウザにアクセスしてみると、下記のように何やら怪しい画面になりました。
これはソースコードに問題があり、 エラーになっています

ちなみにこのように、ソースコードに問題がある場合、SublimeTextで赤い丸がつきます。
これはその行に問題があることを意味しています。
今後、エラーが起こった場合にはまず確認するようにしましょう。

このように、=を使用したのに右側になにもいれないとエラーになってしまいます。
とはいえ、今後「 変数の中に何も入っていない 」状態を作りたいこともあると思うので、そんなときにnullを使用します。

<?php
$emp = null;
var_dump($emp);
?>

nullは何もない状態なので、NULLとしか表示されません。

日本語をvar_dumpすると…


2017-06-14 追記
さて、文字列をvar_dumpを使用して出力すると、文字列の長さが表示されると学習しました。
ここで、下記のような二つの文字列を出力してみましょう。

<?php
$en_words = 'Hello World';
var_dump($en_words);
echo '<br>';
$ja_words = 'こんにちは';
var_dump($ja_words);
?>

この結果を表示させてみましょう。

「Hello World」の方は、半角スペースも入れれば11文字です。
ただ、「こんにちは」の方が15文字と出力されています。
どういうことでしょうか?

実は、文字列の長さは 半角英数字を基準にしています
日本語は半角英数字に比べて難しいため、文字の長さが多めにカウントされてしまいます。
だいたい日本語1文字が、半角英数字3文字として計算されます。

そのため、「こんにちは」は日本語で考えれば5文字ですが、プログラムとしては15文字と出力されます。

上記の説明は、分かりやすくするため、あえて噛み砕いています。
気になる方は シングルバイトマルチバイト で検索してみましょう。

IT用語 SESに向けて準備しよう


2章では一つ一つの項目で数個のIT用語について調べていただきます。
どの用語もSESでよく耳にする言葉なのできちんと調べていきましょう!

下記の用語について、調べてみましょう。
※IT用語についてはチェックテストの範囲外です。

1. API
2. SVN(Subversion)

 

カテゴリー

アーカイブ

Close Bitnami banner
Bitnami